]> Git Repo - linux.git/blob - tools/perf/arch/x86/tests/insn-x86-dat-src.c
Merge tag 'amd-drm-next-6.5-2023-06-09' of https://gitlab.freedesktop.org/agd5f/linux...
[linux.git] / tools / perf / arch / x86 / tests / insn-x86-dat-src.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * This file contains instructions for testing by the test titled:
4  *
5  *         "Test x86 instruction decoder - new instructions"
6  *
7  * Note that the 'Expecting' comment lines are consumed by the
8  * gen-insn-x86-dat.awk script and have the format:
9  *
10  *         Expecting: <op> <branch> <rel>
11  *
12  * If this file is changed, remember to run the gen-insn-x86-dat.sh
13  * script and commit the result.
14  *
15  * Refer to insn-x86.c for more details.
16  */
17
18 int main(void)
19 {
20         /* Following line is a marker for the awk script - do not change */
21         asm volatile("rdtsc"); /* Start here */
22
23         /* Test fix for vcvtph2ps in x86-opcode-map.txt */
24
25         asm volatile("vcvtph2ps %xmm3,%ymm5");
26
27 #ifdef __x86_64__
28
29         /* AVX-512: Instructions with the same op codes as Mask Instructions  */
30
31         asm volatile("cmovno %rax,%rbx");
32         asm volatile("cmovno 0x12345678(%rax),%rcx");
33         asm volatile("cmovno 0x12345678(%rax),%cx");
34
35         asm volatile("cmove  %rax,%rbx");
36         asm volatile("cmove 0x12345678(%rax),%rcx");
37         asm volatile("cmove 0x12345678(%rax),%cx");
38
39         asm volatile("seto    0x12345678(%rax)");
40         asm volatile("setno   0x12345678(%rax)");
41         asm volatile("setb    0x12345678(%rax)");
42         asm volatile("setc    0x12345678(%rax)");
43         asm volatile("setnae  0x12345678(%rax)");
44         asm volatile("setae   0x12345678(%rax)");
45         asm volatile("setnb   0x12345678(%rax)");
46         asm volatile("setnc   0x12345678(%rax)");
47         asm volatile("sets    0x12345678(%rax)");
48         asm volatile("setns   0x12345678(%rax)");
49
50         /* AVX-512: Mask Instructions */
51
52         asm volatile("kandw  %k7,%k6,%k5");
53         asm volatile("kandq  %k7,%k6,%k5");
54         asm volatile("kandb  %k7,%k6,%k5");
55         asm volatile("kandd  %k7,%k6,%k5");
56
57         asm volatile("kandnw  %k7,%k6,%k5");
58         asm volatile("kandnq  %k7,%k6,%k5");
59         asm volatile("kandnb  %k7,%k6,%k5");
60         asm volatile("kandnd  %k7,%k6,%k5");
61
62         asm volatile("knotw  %k7,%k6");
63         asm volatile("knotq  %k7,%k6");
64         asm volatile("knotb  %k7,%k6");
65         asm volatile("knotd  %k7,%k6");
66
67         asm volatile("korw  %k7,%k6,%k5");
68         asm volatile("korq  %k7,%k6,%k5");
69         asm volatile("korb  %k7,%k6,%k5");
70         asm volatile("kord  %k7,%k6,%k5");
71
72         asm volatile("kxnorw  %k7,%k6,%k5");
73         asm volatile("kxnorq  %k7,%k6,%k5");
74         asm volatile("kxnorb  %k7,%k6,%k5");
75         asm volatile("kxnord  %k7,%k6,%k5");
76
77         asm volatile("kxorw  %k7,%k6,%k5");
78         asm volatile("kxorq  %k7,%k6,%k5");
79         asm volatile("kxorb  %k7,%k6,%k5");
80         asm volatile("kxord  %k7,%k6,%k5");
81
82         asm volatile("kaddw  %k7,%k6,%k5");
83         asm volatile("kaddq  %k7,%k6,%k5");
84         asm volatile("kaddb  %k7,%k6,%k5");
85         asm volatile("kaddd  %k7,%k6,%k5");
86
87         asm volatile("kunpckbw %k7,%k6,%k5");
88         asm volatile("kunpckwd %k7,%k6,%k5");
89         asm volatile("kunpckdq %k7,%k6,%k5");
90
91         asm volatile("kmovw  %k6,%k5");
92         asm volatile("kmovw  (%rcx),%k5");
93         asm volatile("kmovw  0x123(%rax,%r14,8),%k5");
94         asm volatile("kmovw  %k5,(%rcx)");
95         asm volatile("kmovw  %k5,0x123(%rax,%r14,8)");
96         asm volatile("kmovw  %eax,%k5");
97         asm volatile("kmovw  %ebp,%k5");
98         asm volatile("kmovw  %r13d,%k5");
99         asm volatile("kmovw  %k5,%eax");
100         asm volatile("kmovw  %k5,%ebp");
101         asm volatile("kmovw  %k5,%r13d");
102
103         asm volatile("kmovq  %k6,%k5");
104         asm volatile("kmovq  (%rcx),%k5");
105         asm volatile("kmovq  0x123(%rax,%r14,8),%k5");
106         asm volatile("kmovq  %k5,(%rcx)");
107         asm volatile("kmovq  %k5,0x123(%rax,%r14,8)");
108         asm volatile("kmovq  %rax,%k5");
109         asm volatile("kmovq  %rbp,%k5");
110         asm volatile("kmovq  %r13,%k5");
111         asm volatile("kmovq  %k5,%rax");
112         asm volatile("kmovq  %k5,%rbp");
113         asm volatile("kmovq  %k5,%r13");
114
115         asm volatile("kmovb  %k6,%k5");
116         asm volatile("kmovb  (%rcx),%k5");
117         asm volatile("kmovb  0x123(%rax,%r14,8),%k5");
118         asm volatile("kmovb  %k5,(%rcx)");
119         asm volatile("kmovb  %k5,0x123(%rax,%r14,8)");
120         asm volatile("kmovb  %eax,%k5");
121         asm volatile("kmovb  %ebp,%k5");
122         asm volatile("kmovb  %r13d,%k5");
123         asm volatile("kmovb  %k5,%eax");
124         asm volatile("kmovb  %k5,%ebp");
125         asm volatile("kmovb  %k5,%r13d");
126
127         asm volatile("kmovd  %k6,%k5");
128         asm volatile("kmovd  (%rcx),%k5");
129         asm volatile("kmovd  0x123(%rax,%r14,8),%k5");
130         asm volatile("kmovd  %k5,(%rcx)");
131         asm volatile("kmovd  %k5,0x123(%rax,%r14,8)");
132         asm volatile("kmovd  %eax,%k5");
133         asm volatile("kmovd  %ebp,%k5");
134         asm volatile("kmovd  %r13d,%k5");
135         asm volatile("kmovd  %k5,%eax");
136         asm volatile("kmovd  %k5,%ebp");
137         asm volatile("kmovd %k5,%r13d");
138
139         asm volatile("kortestw %k6,%k5");
140         asm volatile("kortestq %k6,%k5");
141         asm volatile("kortestb %k6,%k5");
142         asm volatile("kortestd %k6,%k5");
143
144         asm volatile("ktestw %k6,%k5");
145         asm volatile("ktestq %k6,%k5");
146         asm volatile("ktestb %k6,%k5");
147         asm volatile("ktestd %k6,%k5");
148
149         asm volatile("kshiftrw $0x12,%k6,%k5");
150         asm volatile("kshiftrq $0x5b,%k6,%k5");
151         asm volatile("kshiftlw $0x12,%k6,%k5");
152         asm volatile("kshiftlq $0x5b,%k6,%k5");
153
154         /* AVX-512: Op code 0f 5b */
155         asm volatile("vcvtdq2ps %xmm5,%xmm6");
156         asm volatile("vcvtqq2ps %zmm29,%ymm6{%k7}");
157         asm volatile("vcvtps2dq %xmm5,%xmm6");
158         asm volatile("vcvttps2dq %xmm5,%xmm6");
159
160         /* AVX-512: Op code 0f 6f */
161
162         asm volatile("movq   %mm0,%mm4");
163         asm volatile("vmovdqa %ymm4,%ymm6");
164         asm volatile("vmovdqa32 %zmm25,%zmm26");
165         asm volatile("vmovdqa64 %zmm25,%zmm26");
166         asm volatile("vmovdqu %ymm4,%ymm6");
167         asm volatile("vmovdqu32 %zmm29,%zmm30");
168         asm volatile("vmovdqu64 %zmm25,%zmm26");
169         asm volatile("vmovdqu8 %zmm29,%zmm30");
170         asm volatile("vmovdqu16 %zmm25,%zmm26");
171
172         /* AVX-512: Op code 0f 78 */
173
174         asm volatile("vmread %rax,%rbx");
175         asm volatile("vcvttps2udq %zmm25,%zmm26");
176         asm volatile("vcvttpd2udq %zmm29,%ymm6{%k7}");
177         asm volatile("vcvttsd2usi %xmm6,%rax");
178         asm volatile("vcvttss2usi %xmm6,%rax");
179         asm volatile("vcvttps2uqq %ymm5,%zmm26{%k7}");
180         asm volatile("vcvttpd2uqq %zmm29,%zmm30");
181
182         /* AVX-512: Op code 0f 79 */
183
184         asm volatile("vmwrite %rax,%rbx");
185         asm volatile("vcvtps2udq %zmm25,%zmm26");
186         asm volatile("vcvtpd2udq %zmm29,%ymm6{%k7}");
187         asm volatile("vcvtsd2usi %xmm6,%rax");
188         asm volatile("vcvtss2usi %xmm6,%rax");
189         asm volatile("vcvtps2uqq %ymm5,%zmm26{%k7}");
190         asm volatile("vcvtpd2uqq %zmm29,%zmm30");
191
192         /* AVX-512: Op code 0f 7a */
193
194         asm volatile("vcvtudq2pd %ymm5,%zmm29{%k7}");
195         asm volatile("vcvtuqq2pd %zmm25,%zmm26");
196         asm volatile("vcvtudq2ps %zmm29,%zmm30");
197         asm volatile("vcvtuqq2ps %zmm25,%ymm26{%k7}");
198         asm volatile("vcvttps2qq %ymm25,%zmm26{%k7}");
199         asm volatile("vcvttpd2qq %zmm29,%zmm30");
200
201         /* AVX-512: Op code 0f 7b */
202
203         asm volatile("vcvtusi2sd %eax,%xmm5,%xmm6");
204         asm volatile("vcvtusi2ss %eax,%xmm5,%xmm6");
205         asm volatile("vcvtps2qq %ymm5,%zmm26{%k7}");
206         asm volatile("vcvtpd2qq %zmm29,%zmm30");
207
208         /* AVX-512: Op code 0f 7f */
209
210         asm volatile("movq.s  %mm0,%mm4");
211         asm volatile("vmovdqa %ymm8,%ymm6");
212         asm volatile("vmovdqa32.s %zmm25,%zmm26");
213         asm volatile("vmovdqa64.s %zmm25,%zmm26");
214         asm volatile("vmovdqu %ymm8,%ymm6");
215         asm volatile("vmovdqu32.s %zmm25,%zmm26");
216         asm volatile("vmovdqu64.s %zmm25,%zmm26");
217         asm volatile("vmovdqu8.s %zmm30,(%rcx)");
218         asm volatile("vmovdqu16.s %zmm25,%zmm26");
219
220         /* AVX-512: Op code 0f db */
221
222         asm volatile("pand  %mm1,%mm2");
223         asm volatile("pand  %xmm1,%xmm2");
224         asm volatile("vpand  %ymm4,%ymm6,%ymm2");
225         asm volatile("vpandd %zmm24,%zmm25,%zmm26");
226         asm volatile("vpandq %zmm24,%zmm25,%zmm26");
227
228         /* AVX-512: Op code 0f df */
229
230         asm volatile("pandn  %mm1,%mm2");
231         asm volatile("pandn  %xmm1,%xmm2");
232         asm volatile("vpandn %ymm4,%ymm6,%ymm2");
233         asm volatile("vpandnd %zmm24,%zmm25,%zmm26");
234         asm volatile("vpandnq %zmm24,%zmm25,%zmm26");
235
236         /* AVX-512: Op code 0f e6 */
237
238         asm volatile("vcvttpd2dq %xmm1,%xmm2");
239         asm volatile("vcvtdq2pd %xmm5,%xmm6");
240         asm volatile("vcvtdq2pd %ymm5,%zmm26{%k7}");
241         asm volatile("vcvtqq2pd %zmm25,%zmm26");
242         asm volatile("vcvtpd2dq %xmm1,%xmm2");
243
244         /* AVX-512: Op code 0f eb */
245
246         asm volatile("por   %mm4,%mm6");
247         asm volatile("vpor   %ymm4,%ymm6,%ymm2");
248         asm volatile("vpord  %zmm24,%zmm25,%zmm26");
249         asm volatile("vporq  %zmm24,%zmm25,%zmm26");
250
251         /* AVX-512: Op code 0f ef */
252
253         asm volatile("pxor   %mm4,%mm6");
254         asm volatile("vpxor  %ymm4,%ymm6,%ymm2");
255         asm volatile("vpxord %zmm24,%zmm25,%zmm26");
256         asm volatile("vpxorq %zmm24,%zmm25,%zmm26");
257
258         /* AVX-512: Op code 0f 38 10 */
259
260         asm volatile("pblendvb %xmm1,%xmm0");
261         asm volatile("vpsrlvw %zmm27,%zmm28,%zmm29");
262         asm volatile("vpmovuswb %zmm28,%ymm6{%k7}");
263
264         /* AVX-512: Op code 0f 38 11 */
265
266         asm volatile("vpmovusdb %zmm28,%xmm6{%k7}");
267         asm volatile("vpsravw %zmm27,%zmm28,%zmm29");
268
269         /* AVX-512: Op code 0f 38 12 */
270
271         asm volatile("vpmovusqb %zmm27,%xmm6{%k7}");
272         asm volatile("vpsllvw %zmm27,%zmm28,%zmm29");
273
274         /* AVX-512: Op code 0f 38 13 */
275
276         asm volatile("vcvtph2ps %xmm3,%ymm5");
277         asm volatile("vcvtph2ps %ymm5,%zmm27{%k7}");
278         asm volatile("vpmovusdw %zmm27,%ymm6{%k7}");
279
280         /* AVX-512: Op code 0f 38 14 */
281
282         asm volatile("blendvps %xmm1,%xmm0");
283         asm volatile("vpmovusqw %zmm27,%xmm6{%k7}");
284         asm volatile("vprorvd %zmm27,%zmm28,%zmm29");
285         asm volatile("vprorvq %zmm27,%zmm28,%zmm29");
286
287         /* AVX-512: Op code 0f 38 15 */
288
289         asm volatile("blendvpd %xmm1,%xmm0");
290         asm volatile("vpmovusqd %zmm27,%ymm6{%k7}");
291         asm volatile("vprolvd %zmm27,%zmm28,%zmm29");
292         asm volatile("vprolvq %zmm27,%zmm28,%zmm29");
293
294         /* AVX-512: Op code 0f 38 16 */
295
296         asm volatile("vpermps %ymm4,%ymm6,%ymm2");
297         asm volatile("vpermps %ymm24,%ymm26,%ymm22{%k7}");
298         asm volatile("vpermpd %ymm24,%ymm26,%ymm22{%k7}");
299
300         /* AVX-512: Op code 0f 38 19 */
301
302         asm volatile("vbroadcastsd %xmm4,%ymm6");
303         asm volatile("vbroadcastf32x2 %xmm27,%zmm26");
304
305         /* AVX-512: Op code 0f 38 1a */
306
307         asm volatile("vbroadcastf128 (%rcx),%ymm4");
308         asm volatile("vbroadcastf32x4 (%rcx),%zmm26");
309         asm volatile("vbroadcastf64x2 (%rcx),%zmm26");
310
311         /* AVX-512: Op code 0f 38 1b */
312
313         asm volatile("vbroadcastf32x8 (%rcx),%zmm27");
314         asm volatile("vbroadcastf64x4 (%rcx),%zmm26");
315
316         /* AVX-512: Op code 0f 38 1f */
317
318         asm volatile("vpabsq %zmm27,%zmm28");
319
320         /* AVX-512: Op code 0f 38 20 */
321
322         asm volatile("vpmovsxbw %xmm4,%xmm5");
323         asm volatile("vpmovswb %zmm27,%ymm6{%k7}");
324
325         /* AVX-512: Op code 0f 38 21 */
326
327         asm volatile("vpmovsxbd %xmm4,%ymm6");
328         asm volatile("vpmovsdb %zmm27,%xmm6{%k7}");
329
330         /* AVX-512: Op code 0f 38 22 */
331
332         asm volatile("vpmovsxbq %xmm4,%ymm4");
333         asm volatile("vpmovsqb %zmm27,%xmm6{%k7}");
334
335         /* AVX-512: Op code 0f 38 23 */
336
337         asm volatile("vpmovsxwd %xmm4,%ymm4");
338         asm volatile("vpmovsdw %zmm27,%ymm6{%k7}");
339
340         /* AVX-512: Op code 0f 38 24 */
341
342         asm volatile("vpmovsxwq %xmm4,%ymm6");
343         asm volatile("vpmovsqw %zmm27,%xmm6{%k7}");
344
345         /* AVX-512: Op code 0f 38 25 */
346
347         asm volatile("vpmovsxdq %xmm4,%ymm4");
348         asm volatile("vpmovsqd %zmm27,%ymm6{%k7}");
349
350         /* AVX-512: Op code 0f 38 26 */
351
352         asm volatile("vptestmb %zmm27,%zmm28,%k5");
353         asm volatile("vptestmw %zmm27,%zmm28,%k5");
354         asm volatile("vptestnmb %zmm26,%zmm27,%k5");
355         asm volatile("vptestnmw %zmm26,%zmm27,%k5");
356
357         /* AVX-512: Op code 0f 38 27 */
358
359         asm volatile("vptestmd %zmm27,%zmm28,%k5");
360         asm volatile("vptestmq %zmm27,%zmm28,%k5");
361         asm volatile("vptestnmd %zmm26,%zmm27,%k5");
362         asm volatile("vptestnmq %zmm26,%zmm27,%k5");
363
364         /* AVX-512: Op code 0f 38 28 */
365
366         asm volatile("vpmuldq %ymm4,%ymm6,%ymm2");
367         asm volatile("vpmovm2b %k5,%zmm28");
368         asm volatile("vpmovm2w %k5,%zmm28");
369
370         /* AVX-512: Op code 0f 38 29 */
371
372         asm volatile("vpcmpeqq %ymm4,%ymm6,%ymm2");
373         asm volatile("vpmovb2m %zmm28,%k5");
374         asm volatile("vpmovw2m %zmm28,%k5");
375
376         /* AVX-512: Op code 0f 38 2a */
377
378         asm volatile("vmovntdqa (%rcx),%ymm4");
379         asm volatile("vpbroadcastmb2q %k6,%zmm30");
380
381         /* AVX-512: Op code 0f 38 2c */
382
383         asm volatile("vmaskmovps (%rcx),%ymm4,%ymm6");
384         asm volatile("vscalefps %zmm24,%zmm25,%zmm26");
385         asm volatile("vscalefpd %zmm24,%zmm25,%zmm26");
386
387         /* AVX-512: Op code 0f 38 2d */
388
389         asm volatile("vmaskmovpd (%rcx),%ymm4,%ymm6");
390         asm volatile("vscalefss %xmm24,%xmm25,%xmm26{%k7}");
391         asm volatile("vscalefsd %xmm24,%xmm25,%xmm26{%k7}");
392
393         /* AVX-512: Op code 0f 38 30 */
394
395         asm volatile("vpmovzxbw %xmm4,%ymm4");
396         asm volatile("vpmovwb %zmm27,%ymm6{%k7}");
397
398         /* AVX-512: Op code 0f 38 31 */
399
400         asm volatile("vpmovzxbd %xmm4,%ymm6");
401         asm volatile("vpmovdb %zmm27,%xmm6{%k7}");
402
403         /* AVX-512: Op code 0f 38 32 */
404
405         asm volatile("vpmovzxbq %xmm4,%ymm4");
406         asm volatile("vpmovqb %zmm27,%xmm6{%k7}");
407
408         /* AVX-512: Op code 0f 38 33 */
409
410         asm volatile("vpmovzxwd %xmm4,%ymm4");
411         asm volatile("vpmovdw %zmm27,%ymm6{%k7}");
412
413         /* AVX-512: Op code 0f 38 34 */
414
415         asm volatile("vpmovzxwq %xmm4,%ymm6");
416         asm volatile("vpmovqw %zmm27,%xmm6{%k7}");
417
418         /* AVX-512: Op code 0f 38 35 */
419
420         asm volatile("vpmovzxdq %xmm4,%ymm4");
421         asm volatile("vpmovqd %zmm27,%ymm6{%k7}");
422
423         /* AVX-512: Op code 0f 38 38 */
424
425         asm volatile("vpermd %ymm4,%ymm6,%ymm2");
426         asm volatile("vpermd %ymm24,%ymm26,%ymm22{%k7}");
427         asm volatile("vpermq %ymm24,%ymm26,%ymm22{%k7}");
428
429         /* AVX-512: Op code 0f 38 38 */
430
431         asm volatile("vpminsb %ymm4,%ymm6,%ymm2");
432         asm volatile("vpmovm2d %k5,%zmm28");
433         asm volatile("vpmovm2q %k5,%zmm28");
434
435         /* AVX-512: Op code 0f 38 39 */
436
437         asm volatile("vpminsd %xmm1,%xmm2,%xmm3");
438         asm volatile("vpminsd %zmm24,%zmm25,%zmm26");
439         asm volatile("vpminsq %zmm24,%zmm25,%zmm26");
440         asm volatile("vpmovd2m %zmm28,%k5");
441         asm volatile("vpmovq2m %zmm28,%k5");
442
443         /* AVX-512: Op code 0f 38 3a */
444
445         asm volatile("vpminuw %ymm4,%ymm6,%ymm2");
446         asm volatile("vpbroadcastmw2d %k6,%zmm28");
447
448         /* AVX-512: Op code 0f 38 3b */
449
450         asm volatile("vpminud %ymm4,%ymm6,%ymm2");
451         asm volatile("vpminud %zmm24,%zmm25,%zmm26");
452         asm volatile("vpminuq %zmm24,%zmm25,%zmm26");
453
454         /* AVX-512: Op code 0f 38 3d */
455
456         asm volatile("vpmaxsd %ymm4,%ymm6,%ymm2");
457         asm volatile("vpmaxsd %zmm24,%zmm25,%zmm26");
458         asm volatile("vpmaxsq %zmm24,%zmm25,%zmm26");
459
460         /* AVX-512: Op code 0f 38 3f */
461
462         asm volatile("vpmaxud %ymm4,%ymm6,%ymm2");
463         asm volatile("vpmaxud %zmm24,%zmm25,%zmm26");
464         asm volatile("vpmaxuq %zmm24,%zmm25,%zmm26");
465
466         /* AVX-512: Op code 0f 38 42 */
467
468         asm volatile("vpmulld %ymm4,%ymm6,%ymm2");
469         asm volatile("vpmulld %zmm24,%zmm25,%zmm26");
470         asm volatile("vpmullq %zmm24,%zmm25,%zmm26");
471
472         /* AVX-512: Op code 0f 38 42 */
473
474         asm volatile("vgetexpps %zmm25,%zmm26");
475         asm volatile("vgetexppd %zmm27,%zmm28");
476
477         /* AVX-512: Op code 0f 38 43 */
478
479         asm volatile("vgetexpss %xmm24,%xmm25,%xmm26{%k7}");
480         asm volatile("vgetexpsd %xmm28,%xmm29,%xmm30{%k7}");
481
482         /* AVX-512: Op code 0f 38 44 */
483
484         asm volatile("vplzcntd %zmm27,%zmm28");
485         asm volatile("vplzcntq %zmm27,%zmm28");
486
487         /* AVX-512: Op code 0f 38 46 */
488
489         asm volatile("vpsravd %ymm4,%ymm6,%ymm2");
490         asm volatile("vpsravd %zmm24,%zmm25,%zmm26");
491         asm volatile("vpsravq %zmm24,%zmm25,%zmm26");
492
493         /* AVX-512: Op code 0f 38 4c */
494
495         asm volatile("vrcp14ps %zmm25,%zmm26");
496         asm volatile("vrcp14pd %zmm27,%zmm28");
497
498         /* AVX-512: Op code 0f 38 4d */
499
500         asm volatile("vrcp14ss %xmm24,%xmm25,%xmm26{%k7}");
501         asm volatile("vrcp14sd %xmm24,%xmm25,%xmm26{%k7}");
502
503         /* AVX-512: Op code 0f 38 4e */
504
505         asm volatile("vrsqrt14ps %zmm25,%zmm26");
506         asm volatile("vrsqrt14pd %zmm27,%zmm28");
507
508         /* AVX-512: Op code 0f 38 4f */
509
510         asm volatile("vrsqrt14ss %xmm24,%xmm25,%xmm26{%k7}");
511         asm volatile("vrsqrt14sd %xmm24,%xmm25,%xmm26{%k7}");
512
513         /* AVX-512: Op code 0f 38 50 */
514
515         asm volatile("vpdpbusd %xmm1, %xmm2, %xmm3");
516         asm volatile("vpdpbusd %ymm1, %ymm2, %ymm3");
517         asm volatile("vpdpbusd %zmm1, %zmm2, %zmm3");
518         asm volatile("vpdpbusd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
519         asm volatile("vpdpbusd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
520
521         /* AVX-512: Op code 0f 38 51 */
522
523         asm volatile("vpdpbusds %xmm1, %xmm2, %xmm3");
524         asm volatile("vpdpbusds %ymm1, %ymm2, %ymm3");
525         asm volatile("vpdpbusds %zmm1, %zmm2, %zmm3");
526         asm volatile("vpdpbusds 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
527         asm volatile("vpdpbusds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
528
529         /* AVX-512: Op code 0f 38 52 */
530
531         asm volatile("vdpbf16ps %xmm1, %xmm2, %xmm3");
532         asm volatile("vdpbf16ps %ymm1, %ymm2, %ymm3");
533         asm volatile("vdpbf16ps %zmm1, %zmm2, %zmm3");
534         asm volatile("vdpbf16ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
535         asm volatile("vdpbf16ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
536
537         asm volatile("vpdpwssd %xmm1, %xmm2, %xmm3");
538         asm volatile("vpdpwssd %ymm1, %ymm2, %ymm3");
539         asm volatile("vpdpwssd %zmm1, %zmm2, %zmm3");
540         asm volatile("vpdpwssd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
541         asm volatile("vpdpwssd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
542
543         asm volatile("vp4dpwssd (%rax), %zmm0, %zmm4");
544         asm volatile("vp4dpwssd (%eax), %zmm0, %zmm4");
545         asm volatile("vp4dpwssd 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
546         asm volatile("vp4dpwssd 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
547
548         /* AVX-512: Op code 0f 38 53 */
549
550         asm volatile("vpdpwssds %xmm1, %xmm2, %xmm3");
551         asm volatile("vpdpwssds %ymm1, %ymm2, %ymm3");
552         asm volatile("vpdpwssds %zmm1, %zmm2, %zmm3");
553         asm volatile("vpdpwssds 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
554         asm volatile("vpdpwssds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
555
556         asm volatile("vp4dpwssds (%rax), %zmm0, %zmm4");
557         asm volatile("vp4dpwssds (%eax), %zmm0, %zmm4");
558         asm volatile("vp4dpwssds 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
559         asm volatile("vp4dpwssds 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
560
561         /* AVX-512: Op code 0f 38 54 */
562
563         asm volatile("vpopcntb %xmm1, %xmm2");
564         asm volatile("vpopcntb %ymm1, %ymm2");
565         asm volatile("vpopcntb %zmm1, %zmm2");
566         asm volatile("vpopcntb 0x12345678(%rax,%rcx,8),%zmm2");
567         asm volatile("vpopcntb 0x12345678(%eax,%ecx,8),%zmm2");
568
569         asm volatile("vpopcntw %xmm1, %xmm2");
570         asm volatile("vpopcntw %ymm1, %ymm2");
571         asm volatile("vpopcntw %zmm1, %zmm2");
572         asm volatile("vpopcntw 0x12345678(%rax,%rcx,8),%zmm2");
573         asm volatile("vpopcntw 0x12345678(%eax,%ecx,8),%zmm2");
574
575         /* AVX-512: Op code 0f 38 55 */
576
577         asm volatile("vpopcntd %xmm1, %xmm2");
578         asm volatile("vpopcntd %ymm1, %ymm2");
579         asm volatile("vpopcntd %zmm1, %zmm2");
580         asm volatile("vpopcntd 0x12345678(%rax,%rcx,8),%zmm2");
581         asm volatile("vpopcntd 0x12345678(%eax,%ecx,8),%zmm2");
582
583         asm volatile("vpopcntq %xmm1, %xmm2");
584         asm volatile("vpopcntq %ymm1, %ymm2");
585         asm volatile("vpopcntq %zmm1, %zmm2");
586         asm volatile("vpopcntq 0x12345678(%rax,%rcx,8),%zmm2");
587         asm volatile("vpopcntq 0x12345678(%eax,%ecx,8),%zmm2");
588
589         /* AVX-512: Op code 0f 38 59 */
590
591         asm volatile("vpbroadcastq %xmm4,%xmm6");
592         asm volatile("vbroadcasti32x2 %xmm27,%zmm26");
593
594         /* AVX-512: Op code 0f 38 5a */
595
596         asm volatile("vbroadcasti128 (%rcx),%ymm4");
597         asm volatile("vbroadcasti32x4 (%rcx),%zmm26");
598         asm volatile("vbroadcasti64x2 (%rcx),%zmm26");
599
600         /* AVX-512: Op code 0f 38 5b */
601
602         asm volatile("vbroadcasti32x8 (%rcx),%zmm28");
603         asm volatile("vbroadcasti64x4 (%rcx),%zmm26");
604
605         /* AVX-512: Op code 0f 38 62 */
606
607         asm volatile("vpexpandb %xmm1, %xmm2");
608         asm volatile("vpexpandb %ymm1, %ymm2");
609         asm volatile("vpexpandb %zmm1, %zmm2");
610         asm volatile("vpexpandb 0x12345678(%rax,%rcx,8),%zmm2");
611         asm volatile("vpexpandb 0x12345678(%eax,%ecx,8),%zmm2");
612
613         asm volatile("vpexpandw %xmm1, %xmm2");
614         asm volatile("vpexpandw %ymm1, %ymm2");
615         asm volatile("vpexpandw %zmm1, %zmm2");
616         asm volatile("vpexpandw 0x12345678(%rax,%rcx,8),%zmm2");
617         asm volatile("vpexpandw 0x12345678(%eax,%ecx,8),%zmm2");
618
619         /* AVX-512: Op code 0f 38 63 */
620
621         asm volatile("vpcompressb %xmm1, %xmm2");
622         asm volatile("vpcompressb %ymm1, %ymm2");
623         asm volatile("vpcompressb %zmm1, %zmm2");
624         asm volatile("vpcompressb %zmm2,0x12345678(%rax,%rcx,8)");
625         asm volatile("vpcompressb %zmm2,0x12345678(%eax,%ecx,8)");
626
627         asm volatile("vpcompressw %xmm1, %xmm2");
628         asm volatile("vpcompressw %ymm1, %ymm2");
629         asm volatile("vpcompressw %zmm1, %zmm2");
630         asm volatile("vpcompressw %zmm2,0x12345678(%rax,%rcx,8)");
631         asm volatile("vpcompressw %zmm2,0x12345678(%eax,%ecx,8)");
632
633         /* AVX-512: Op code 0f 38 64 */
634
635         asm volatile("vpblendmd %zmm26,%zmm27,%zmm28");
636         asm volatile("vpblendmq %zmm26,%zmm27,%zmm28");
637
638         /* AVX-512: Op code 0f 38 65 */
639
640         asm volatile("vblendmps %zmm24,%zmm25,%zmm26");
641         asm volatile("vblendmpd %zmm26,%zmm27,%zmm28");
642
643         /* AVX-512: Op code 0f 38 66 */
644
645         asm volatile("vpblendmb %zmm26,%zmm27,%zmm28");
646         asm volatile("vpblendmw %zmm26,%zmm27,%zmm28");
647
648         /* AVX-512: Op code 0f 38 68 */
649
650         asm volatile("vp2intersectd %xmm1, %xmm2, %k3");
651         asm volatile("vp2intersectd %ymm1, %ymm2, %k3");
652         asm volatile("vp2intersectd %zmm1, %zmm2, %k3");
653         asm volatile("vp2intersectd 0x12345678(%rax,%rcx,8),%zmm2,%k3");
654         asm volatile("vp2intersectd 0x12345678(%eax,%ecx,8),%zmm2,%k3");
655
656         asm volatile("vp2intersectq %xmm1, %xmm2, %k3");
657         asm volatile("vp2intersectq %ymm1, %ymm2, %k3");
658         asm volatile("vp2intersectq %zmm1, %zmm2, %k3");
659         asm volatile("vp2intersectq 0x12345678(%rax,%rcx,8),%zmm2,%k3");
660         asm volatile("vp2intersectq 0x12345678(%eax,%ecx,8),%zmm2,%k3");
661
662         /* AVX-512: Op code 0f 38 70 */
663
664         asm volatile("vpshldvw %xmm1, %xmm2, %xmm3");
665         asm volatile("vpshldvw %ymm1, %ymm2, %ymm3");
666         asm volatile("vpshldvw %zmm1, %zmm2, %zmm3");
667         asm volatile("vpshldvw 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
668         asm volatile("vpshldvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
669
670         /* AVX-512: Op code 0f 38 71 */
671
672         asm volatile("vpshldvd %xmm1, %xmm2, %xmm3");
673         asm volatile("vpshldvd %ymm1, %ymm2, %ymm3");
674         asm volatile("vpshldvd %zmm1, %zmm2, %zmm3");
675         asm volatile("vpshldvd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
676         asm volatile("vpshldvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
677
678         asm volatile("vpshldvq %xmm1, %xmm2, %xmm3");
679         asm volatile("vpshldvq %ymm1, %ymm2, %ymm3");
680         asm volatile("vpshldvq %zmm1, %zmm2, %zmm3");
681         asm volatile("vpshldvq 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
682         asm volatile("vpshldvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
683
684         /* AVX-512: Op code 0f 38 72 */
685
686         asm volatile("vcvtne2ps2bf16 %xmm1, %xmm2, %xmm3");
687         asm volatile("vcvtne2ps2bf16 %ymm1, %ymm2, %ymm3");
688         asm volatile("vcvtne2ps2bf16 %zmm1, %zmm2, %zmm3");
689         asm volatile("vcvtne2ps2bf16 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
690         asm volatile("vcvtne2ps2bf16 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
691
692         asm volatile("vcvtneps2bf16 %xmm1, %xmm2");
693         asm volatile("vcvtneps2bf16 %ymm1, %xmm2");
694         asm volatile("vcvtneps2bf16 %zmm1, %ymm2");
695         asm volatile("vcvtneps2bf16 0x12345678(%rax,%rcx,8),%ymm2");
696         asm volatile("vcvtneps2bf16 0x12345678(%eax,%ecx,8),%ymm2");
697
698         asm volatile("vpshrdvw %xmm1, %xmm2, %xmm3");
699         asm volatile("vpshrdvw %ymm1, %ymm2, %ymm3");
700         asm volatile("vpshrdvw %zmm1, %zmm2, %zmm3");
701         asm volatile("vpshrdvw 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
702         asm volatile("vpshrdvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
703
704         /* AVX-512: Op code 0f 38 73 */
705
706         asm volatile("vpshrdvd %xmm1, %xmm2, %xmm3");
707         asm volatile("vpshrdvd %ymm1, %ymm2, %ymm3");
708         asm volatile("vpshrdvd %zmm1, %zmm2, %zmm3");
709         asm volatile("vpshrdvd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
710         asm volatile("vpshrdvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
711
712         asm volatile("vpshrdvq %xmm1, %xmm2, %xmm3");
713         asm volatile("vpshrdvq %ymm1, %ymm2, %ymm3");
714         asm volatile("vpshrdvq %zmm1, %zmm2, %zmm3");
715         asm volatile("vpshrdvq 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
716         asm volatile("vpshrdvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
717
718         /* AVX-512: Op code 0f 38 75 */
719
720         asm volatile("vpermi2b %zmm24,%zmm25,%zmm26");
721         asm volatile("vpermi2w %zmm26,%zmm27,%zmm28");
722
723         /* AVX-512: Op code 0f 38 76 */
724
725         asm volatile("vpermi2d %zmm26,%zmm27,%zmm28");
726         asm volatile("vpermi2q %zmm26,%zmm27,%zmm28");
727
728         /* AVX-512: Op code 0f 38 77 */
729
730         asm volatile("vpermi2ps %zmm26,%zmm27,%zmm28");
731         asm volatile("vpermi2pd %zmm26,%zmm27,%zmm28");
732
733         /* AVX-512: Op code 0f 38 7a */
734
735         asm volatile("vpbroadcastb %eax,%xmm30");
736
737         /* AVX-512: Op code 0f 38 7b */
738
739         asm volatile("vpbroadcastw %eax,%xmm30");
740
741         /* AVX-512: Op code 0f 38 7c */
742
743         asm volatile("vpbroadcastd %eax,%xmm30");
744         asm volatile("vpbroadcastq %rax,%zmm30");
745
746         /* AVX-512: Op code 0f 38 7d */
747
748         asm volatile("vpermt2b %zmm26,%zmm27,%zmm28");
749         asm volatile("vpermt2w %zmm26,%zmm27,%zmm28");
750
751         /* AVX-512: Op code 0f 38 7e */
752
753         asm volatile("vpermt2d %zmm26,%zmm27,%zmm28");
754         asm volatile("vpermt2q %zmm26,%zmm27,%zmm28");
755
756         /* AVX-512: Op code 0f 38 7f */
757
758         asm volatile("vpermt2ps %zmm26,%zmm27,%zmm28");
759         asm volatile("vpermt2pd %zmm26,%zmm27,%zmm28");
760
761         /* AVX-512: Op code 0f 38 83 */
762
763         asm volatile("vpmultishiftqb %zmm26,%zmm27,%zmm28");
764
765         /* AVX-512: Op code 0f 38 88 */
766
767         asm volatile("vexpandps (%rcx),%zmm26");
768         asm volatile("vexpandpd (%rcx),%zmm28");
769
770         /* AVX-512: Op code 0f 38 89 */
771
772         asm volatile("vpexpandd (%rcx),%zmm28");
773         asm volatile("vpexpandq (%rcx),%zmm26");
774
775         /* AVX-512: Op code 0f 38 8a */
776
777         asm volatile("vcompressps %zmm28,(%rcx)");
778         asm volatile("vcompresspd %zmm28,(%rcx)");
779
780         /* AVX-512: Op code 0f 38 8b */
781
782         asm volatile("vpcompressd %zmm28,(%rcx)");
783         asm volatile("vpcompressq %zmm26,(%rcx)");
784
785         /* AVX-512: Op code 0f 38 8d */
786
787         asm volatile("vpermb %zmm26,%zmm27,%zmm28");
788         asm volatile("vpermw %zmm26,%zmm27,%zmm28");
789
790         /* AVX-512: Op code 0f 38 8f */
791
792         asm volatile("vpshufbitqmb %xmm1, %xmm2, %k3");
793         asm volatile("vpshufbitqmb %ymm1, %ymm2, %k3");
794         asm volatile("vpshufbitqmb %zmm1, %zmm2, %k3");
795         asm volatile("vpshufbitqmb 0x12345678(%rax,%rcx,8),%zmm2,%k3");
796         asm volatile("vpshufbitqmb 0x12345678(%eax,%ecx,8),%zmm2,%k3");
797
798         /* AVX-512: Op code 0f 38 90 */
799
800         asm volatile("vpgatherdd %xmm2,0x02(%rbp,%xmm7,2),%xmm1");
801         asm volatile("vpgatherdq %xmm2,0x04(%rbp,%xmm7,2),%xmm1");
802         asm volatile("vpgatherdd 0x7b(%rbp,%zmm27,8),%zmm26{%k1}");
803         asm volatile("vpgatherdq 0x7b(%rbp,%ymm27,8),%zmm26{%k1}");
804
805         /* AVX-512: Op code 0f 38 91 */
806
807         asm volatile("vpgatherqd %xmm2,0x02(%rbp,%xmm7,2),%xmm1");
808         asm volatile("vpgatherqq %xmm2,0x02(%rbp,%xmm7,2),%xmm1");
809         asm volatile("vpgatherqd 0x7b(%rbp,%zmm27,8),%ymm26{%k1}");
810         asm volatile("vpgatherqq 0x7b(%rbp,%zmm27,8),%zmm26{%k1}");
811
812         /* AVX-512: Op code 0f 38 9a */
813
814         asm volatile("vfmsub132ps %xmm1, %xmm2, %xmm3");
815         asm volatile("vfmsub132ps %ymm1, %ymm2, %ymm3");
816         asm volatile("vfmsub132ps %zmm1, %zmm2, %zmm3");
817         asm volatile("vfmsub132ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
818         asm volatile("vfmsub132ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
819
820         asm volatile("vfmsub132pd %xmm1, %xmm2, %xmm3");
821         asm volatile("vfmsub132pd %ymm1, %ymm2, %ymm3");
822         asm volatile("vfmsub132pd %zmm1, %zmm2, %zmm3");
823         asm volatile("vfmsub132pd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
824         asm volatile("vfmsub132pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
825
826         asm volatile("v4fmaddps (%rax), %zmm0, %zmm4");
827         asm volatile("v4fmaddps (%eax), %zmm0, %zmm4");
828         asm volatile("v4fmaddps 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
829         asm volatile("v4fmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
830
831         /* AVX-512: Op code 0f 38 9b */
832
833         asm volatile("vfmsub132ss %xmm1, %xmm2, %xmm3");
834         asm volatile("vfmsub132ss 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
835         asm volatile("vfmsub132ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
836
837         asm volatile("vfmsub132sd %xmm1, %xmm2, %xmm3");
838         asm volatile("vfmsub132sd 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
839         asm volatile("vfmsub132sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
840
841         asm volatile("v4fmaddss (%rax), %xmm0, %xmm4");
842         asm volatile("v4fmaddss (%eax), %xmm0, %xmm4");
843         asm volatile("v4fmaddss 0x12345678(%rax,%rcx,8),%xmm0,%xmm4");
844         asm volatile("v4fmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
845
846         /* AVX-512: Op code 0f 38 a0 */
847
848         asm volatile("vpscatterdd %zmm28,0x7b(%rbp,%zmm29,8){%k1}");
849         asm volatile("vpscatterdq %zmm26,0x7b(%rbp,%ymm27,8){%k1}");
850
851         /* AVX-512: Op code 0f 38 a1 */
852
853         asm volatile("vpscatterqd %ymm6,0x7b(%rbp,%zmm29,8){%k1}");
854         asm volatile("vpscatterqq %ymm6,0x7b(%rbp,%ymm27,8){%k1}");
855
856         /* AVX-512: Op code 0f 38 a2 */
857
858         asm volatile("vscatterdps %zmm28,0x7b(%rbp,%zmm29,8){%k1}");
859         asm volatile("vscatterdpd %zmm28,0x7b(%rbp,%ymm27,8){%k1}");
860
861         /* AVX-512: Op code 0f 38 a3 */
862
863         asm volatile("vscatterqps %ymm6,0x7b(%rbp,%zmm29,8){%k1}");
864         asm volatile("vscatterqpd %zmm28,0x7b(%rbp,%zmm29,8){%k1}");
865
866         /* AVX-512: Op code 0f 38 aa */
867
868         asm volatile("vfmsub213ps %xmm1, %xmm2, %xmm3");
869         asm volatile("vfmsub213ps %ymm1, %ymm2, %ymm3");
870         asm volatile("vfmsub213ps %zmm1, %zmm2, %zmm3");
871         asm volatile("vfmsub213ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
872         asm volatile("vfmsub213ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
873
874         asm volatile("vfmsub213pd %xmm1, %xmm2, %xmm3");
875         asm volatile("vfmsub213pd %ymm1, %ymm2, %ymm3");
876         asm volatile("vfmsub213pd %zmm1, %zmm2, %zmm3");
877         asm volatile("vfmsub213pd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
878         asm volatile("vfmsub213pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
879
880         asm volatile("v4fnmaddps (%rax), %zmm0, %zmm4");
881         asm volatile("v4fnmaddps (%eax), %zmm0, %zmm4");
882         asm volatile("v4fnmaddps 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
883         asm volatile("v4fnmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
884
885         /* AVX-512: Op code 0f 38 ab */
886
887         asm volatile("vfmsub213ss %xmm1, %xmm2, %xmm3");
888         asm volatile("vfmsub213ss 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
889         asm volatile("vfmsub213ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
890
891         asm volatile("vfmsub213sd %xmm1, %xmm2, %xmm3");
892         asm volatile("vfmsub213sd 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
893         asm volatile("vfmsub213sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
894
895         asm volatile("v4fnmaddss (%rax), %xmm0, %xmm4");
896         asm volatile("v4fnmaddss (%eax), %xmm0, %xmm4");
897         asm volatile("v4fnmaddss 0x12345678(%rax,%rcx,8),%xmm0,%xmm4");
898         asm volatile("v4fnmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
899
900         /* AVX-512: Op code 0f 38 b4 */
901
902         asm volatile("vpmadd52luq %zmm26,%zmm27,%zmm28");
903
904         /* AVX-512: Op code 0f 38 b5 */
905
906         asm volatile("vpmadd52huq %zmm26,%zmm27,%zmm28");
907
908         /* AVX-512: Op code 0f 38 c4 */
909
910         asm volatile("vpconflictd %zmm26,%zmm27");
911         asm volatile("vpconflictq %zmm26,%zmm27");
912
913         /* AVX-512: Op code 0f 38 c8 */
914
915         asm volatile("vexp2ps %zmm29,%zmm30");
916         asm volatile("vexp2pd %zmm26,%zmm27");
917
918         /* AVX-512: Op code 0f 38 ca */
919
920         asm volatile("vrcp28ps %zmm29,%zmm30");
921         asm volatile("vrcp28pd %zmm26,%zmm27");
922
923         /* AVX-512: Op code 0f 38 cb */
924
925         asm volatile("vrcp28ss %xmm28,%xmm29,%xmm30{%k7}");
926         asm volatile("vrcp28sd %xmm25,%xmm26,%xmm27{%k7}");
927
928         /* AVX-512: Op code 0f 38 cc */
929
930         asm volatile("vrsqrt28ps %zmm29,%zmm30");
931         asm volatile("vrsqrt28pd %zmm26,%zmm27");
932
933         /* AVX-512: Op code 0f 38 cd */
934
935         asm volatile("vrsqrt28ss %xmm28,%xmm29,%xmm30{%k7}");
936         asm volatile("vrsqrt28sd %xmm25,%xmm26,%xmm27{%k7}");
937
938         /* AVX-512: Op code 0f 38 cf */
939
940         asm volatile("gf2p8mulb %xmm1, %xmm3");
941         asm volatile("gf2p8mulb 0x12345678(%rax,%rcx,8),%xmm3");
942         asm volatile("gf2p8mulb 0x12345678(%eax,%ecx,8),%xmm3");
943
944         asm volatile("vgf2p8mulb %xmm1, %xmm2, %xmm3");
945         asm volatile("vgf2p8mulb %ymm1, %ymm2, %ymm3");
946         asm volatile("vgf2p8mulb %zmm1, %zmm2, %zmm3");
947         asm volatile("vgf2p8mulb 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
948         asm volatile("vgf2p8mulb 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
949
950         /* AVX-512: Op code 0f 38 dc */
951
952         asm volatile("vaesenc %xmm1, %xmm2, %xmm3");
953         asm volatile("vaesenc %ymm1, %ymm2, %ymm3");
954         asm volatile("vaesenc %zmm1, %zmm2, %zmm3");
955         asm volatile("vaesenc 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
956         asm volatile("vaesenc 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
957
958         /* AVX-512: Op code 0f 38 dd */
959
960         asm volatile("vaesenclast %xmm1, %xmm2, %xmm3");
961         asm volatile("vaesenclast %ymm1, %ymm2, %ymm3");
962         asm volatile("vaesenclast %zmm1, %zmm2, %zmm3");
963         asm volatile("vaesenclast 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
964         asm volatile("vaesenclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
965
966         /* AVX-512: Op code 0f 38 de */
967
968         asm volatile("vaesdec %xmm1, %xmm2, %xmm3");
969         asm volatile("vaesdec %ymm1, %ymm2, %ymm3");
970         asm volatile("vaesdec %zmm1, %zmm2, %zmm3");
971         asm volatile("vaesdec 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
972         asm volatile("vaesdec 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
973
974         /* AVX-512: Op code 0f 38 df */
975
976         asm volatile("vaesdeclast %xmm1, %xmm2, %xmm3");
977         asm volatile("vaesdeclast %ymm1, %ymm2, %ymm3");
978         asm volatile("vaesdeclast %zmm1, %zmm2, %zmm3");
979         asm volatile("vaesdeclast 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
980         asm volatile("vaesdeclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
981
982         /* AVX-512: Op code 0f 3a 03 */
983
984         asm volatile("valignd $0x12,%zmm28,%zmm29,%zmm30");
985         asm volatile("valignq $0x12,%zmm25,%zmm26,%zmm27");
986
987         /* AVX-512: Op code 0f 3a 08 */
988
989         asm volatile("vroundps $0x5,%ymm6,%ymm2");
990         asm volatile("vrndscaleps $0x12,%zmm25,%zmm26");
991
992         /* AVX-512: Op code 0f 3a 09 */
993
994         asm volatile("vroundpd $0x5,%ymm6,%ymm2");
995         asm volatile("vrndscalepd $0x12,%zmm25,%zmm26");
996
997         /* AVX-512: Op code 0f 3a 1a */
998
999         asm volatile("vroundss $0x5,%xmm4,%xmm6,%xmm2");
1000         asm volatile("vrndscaless $0x12,%xmm24,%xmm25,%xmm26{%k7}");
1001
1002         /* AVX-512: Op code 0f 3a 0b */
1003
1004         asm volatile("vroundsd $0x5,%xmm4,%xmm6,%xmm2");
1005         asm volatile("vrndscalesd $0x12,%xmm24,%xmm25,%xmm26{%k7}");
1006
1007         /* AVX-512: Op code 0f 3a 18 */
1008
1009         asm volatile("vinsertf128 $0x5,%xmm4,%ymm4,%ymm6");
1010         asm volatile("vinsertf32x4 $0x12,%xmm24,%zmm25,%zmm26{%k7}");
1011         asm volatile("vinsertf64x2 $0x12,%xmm24,%zmm25,%zmm26{%k7}");
1012
1013         /* AVX-512: Op code 0f 3a 19 */
1014
1015         asm volatile("vextractf128 $0x5,%ymm4,%xmm4");
1016         asm volatile("vextractf32x4 $0x12,%zmm25,%xmm26{%k7}");
1017         asm volatile("vextractf64x2 $0x12,%zmm25,%xmm26{%k7}");
1018
1019         /* AVX-512: Op code 0f 3a 1a */
1020
1021         asm volatile("vinsertf32x8 $0x12,%ymm25,%zmm26,%zmm27{%k7}");
1022         asm volatile("vinsertf64x4 $0x12,%ymm28,%zmm29,%zmm30{%k7}");
1023
1024         /* AVX-512: Op code 0f 3a 1b */
1025
1026         asm volatile("vextractf32x8 $0x12,%zmm29,%ymm30{%k7}");
1027         asm volatile("vextractf64x4 $0x12,%zmm26,%ymm27{%k7}");
1028
1029         /* AVX-512: Op code 0f 3a 1e */
1030
1031         asm volatile("vpcmpud $0x12,%zmm29,%zmm30,%k5");
1032         asm volatile("vpcmpuq $0x12,%zmm26,%zmm27,%k5");
1033
1034         /* AVX-512: Op code 0f 3a 1f */
1035
1036         asm volatile("vpcmpd $0x12,%zmm29,%zmm30,%k5");
1037         asm volatile("vpcmpq $0x12,%zmm26,%zmm27,%k5");
1038
1039         /* AVX-512: Op code 0f 3a 23 */
1040
1041         asm volatile("vshuff32x4 $0x12,%zmm28,%zmm29,%zmm30");
1042         asm volatile("vshuff64x2 $0x12,%zmm25,%zmm26,%zmm27");
1043
1044         /* AVX-512: Op code 0f 3a 25 */
1045
1046         asm volatile("vpternlogd $0x12,%zmm28,%zmm29,%zmm30");
1047         asm volatile("vpternlogq $0x12,%zmm28,%zmm29,%zmm30");
1048
1049         /* AVX-512: Op code 0f 3a 26 */
1050
1051         asm volatile("vgetmantps $0x12,%zmm26,%zmm27");
1052         asm volatile("vgetmantpd $0x12,%zmm29,%zmm30");
1053
1054         /* AVX-512: Op code 0f 3a 27 */
1055
1056         asm volatile("vgetmantss $0x12,%xmm25,%xmm26,%xmm27{%k7}");
1057         asm volatile("vgetmantsd $0x12,%xmm28,%xmm29,%xmm30{%k7}");
1058
1059         /* AVX-512: Op code 0f 3a 38 */
1060
1061         asm volatile("vinserti128 $0x5,%xmm4,%ymm4,%ymm6");
1062         asm volatile("vinserti32x4 $0x12,%xmm24,%zmm25,%zmm26{%k7}");
1063         asm volatile("vinserti64x2 $0x12,%xmm24,%zmm25,%zmm26{%k7}");
1064
1065         /* AVX-512: Op code 0f 3a 39 */
1066
1067         asm volatile("vextracti128 $0x5,%ymm4,%xmm6");
1068         asm volatile("vextracti32x4 $0x12,%zmm25,%xmm26{%k7}");
1069         asm volatile("vextracti64x2 $0x12,%zmm25,%xmm26{%k7}");
1070
1071         /* AVX-512: Op code 0f 3a 3a */
1072
1073         asm volatile("vinserti32x8 $0x12,%ymm28,%zmm29,%zmm30{%k7}");
1074         asm volatile("vinserti64x4 $0x12,%ymm25,%zmm26,%zmm27{%k7}");
1075
1076         /* AVX-512: Op code 0f 3a 3b */
1077
1078         asm volatile("vextracti32x8 $0x12,%zmm29,%ymm30{%k7}");
1079         asm volatile("vextracti64x4 $0x12,%zmm26,%ymm27{%k7}");
1080
1081         /* AVX-512: Op code 0f 3a 3e */
1082
1083         asm volatile("vpcmpub $0x12,%zmm29,%zmm30,%k5");
1084         asm volatile("vpcmpuw $0x12,%zmm26,%zmm27,%k5");
1085
1086         /* AVX-512: Op code 0f 3a 3f */
1087
1088         asm volatile("vpcmpb $0x12,%zmm29,%zmm30,%k5");
1089         asm volatile("vpcmpw $0x12,%zmm26,%zmm27,%k5");
1090
1091         /* AVX-512: Op code 0f 3a 43 */
1092
1093         asm volatile("vmpsadbw $0x5,%ymm4,%ymm6,%ymm2");
1094         asm volatile("vdbpsadbw $0x12,%zmm4,%zmm5,%zmm6");
1095
1096         /* AVX-512: Op code 0f 3a 43 */
1097
1098         asm volatile("vshufi32x4 $0x12,%zmm25,%zmm26,%zmm27");
1099         asm volatile("vshufi64x2 $0x12,%zmm28,%zmm29,%zmm30");
1100
1101         /* AVX-512: Op code 0f 3a 44 */
1102
1103         asm volatile("vpclmulqdq $0x12,%xmm1,%xmm2,%xmm3");
1104         asm volatile("vpclmulqdq $0x12,%ymm1,%ymm2,%ymm3");
1105         asm volatile("vpclmulqdq $0x12,%zmm1,%zmm2,%zmm3");
1106         asm volatile("vpclmulqdq $0x12,%zmm25,%zmm26,%zmm27");
1107
1108         /* AVX-512: Op code 0f 3a 50 */
1109
1110         asm volatile("vrangeps $0x12,%zmm25,%zmm26,%zmm27");
1111         asm volatile("vrangepd $0x12,%zmm28,%zmm29,%zmm30");
1112
1113         /* AVX-512: Op code 0f 3a 51 */
1114
1115         asm volatile("vrangess $0x12,%xmm25,%xmm26,%xmm27");
1116         asm volatile("vrangesd $0x12,%xmm28,%xmm29,%xmm30");
1117
1118         /* AVX-512: Op code 0f 3a 54 */
1119
1120         asm volatile("vfixupimmps $0x12,%zmm28,%zmm29,%zmm30");
1121         asm volatile("vfixupimmpd $0x12,%zmm25,%zmm26,%zmm27");
1122
1123         /* AVX-512: Op code 0f 3a 55 */
1124
1125         asm volatile("vfixupimmss $0x12,%xmm28,%xmm29,%xmm30{%k7}");
1126         asm volatile("vfixupimmsd $0x12,%xmm25,%xmm26,%xmm27{%k7}");
1127
1128         /* AVX-512: Op code 0f 3a 56 */
1129
1130         asm volatile("vreduceps $0x12,%zmm26,%zmm27");
1131         asm volatile("vreducepd $0x12,%zmm29,%zmm30");
1132
1133         /* AVX-512: Op code 0f 3a 57 */
1134
1135         asm volatile("vreducess $0x12,%xmm25,%xmm26,%xmm27");
1136         asm volatile("vreducesd $0x12,%xmm28,%xmm29,%xmm30");
1137
1138         /* AVX-512: Op code 0f 3a 66 */
1139
1140         asm volatile("vfpclassps $0x12,%zmm27,%k5");
1141         asm volatile("vfpclasspd $0x12,%zmm30,%k5");
1142
1143         /* AVX-512: Op code 0f 3a 67 */
1144
1145         asm volatile("vfpclassss $0x12,%xmm27,%k5");
1146         asm volatile("vfpclasssd $0x12,%xmm30,%k5");
1147
1148         /* AVX-512: Op code 0f 3a 70 */
1149
1150         asm volatile("vpshldw $0x12,%xmm1,%xmm2,%xmm3");
1151         asm volatile("vpshldw $0x12,%ymm1,%ymm2,%ymm3");
1152         asm volatile("vpshldw $0x12,%zmm1,%zmm2,%zmm3");
1153         asm volatile("vpshldw $0x12,%zmm25,%zmm26,%zmm27");
1154
1155         /* AVX-512: Op code 0f 3a 71 */
1156
1157         asm volatile("vpshldd $0x12,%xmm1,%xmm2,%xmm3");
1158         asm volatile("vpshldd $0x12,%ymm1,%ymm2,%ymm3");
1159         asm volatile("vpshldd $0x12,%zmm1,%zmm2,%zmm3");
1160         asm volatile("vpshldd $0x12,%zmm25,%zmm26,%zmm27");
1161
1162         asm volatile("vpshldq $0x12,%xmm1,%xmm2,%xmm3");
1163         asm volatile("vpshldq $0x12,%ymm1,%ymm2,%ymm3");
1164         asm volatile("vpshldq $0x12,%zmm1,%zmm2,%zmm3");
1165         asm volatile("vpshldq $0x12,%zmm25,%zmm26,%zmm27");
1166
1167         /* AVX-512: Op code 0f 3a 72 */
1168
1169         asm volatile("vpshrdw $0x12,%xmm1,%xmm2,%xmm3");
1170         asm volatile("vpshrdw $0x12,%ymm1,%ymm2,%ymm3");
1171         asm volatile("vpshrdw $0x12,%zmm1,%zmm2,%zmm3");
1172         asm volatile("vpshrdw $0x12,%zmm25,%zmm26,%zmm27");
1173
1174         /* AVX-512: Op code 0f 3a 73 */
1175
1176         asm volatile("vpshrdd $0x12,%xmm1,%xmm2,%xmm3");
1177         asm volatile("vpshrdd $0x12,%ymm1,%ymm2,%ymm3");
1178         asm volatile("vpshrdd $0x12,%zmm1,%zmm2,%zmm3");
1179         asm volatile("vpshrdd $0x12,%zmm25,%zmm26,%zmm27");
1180
1181         asm volatile("vpshrdq $0x12,%xmm1,%xmm2,%xmm3");
1182         asm volatile("vpshrdq $0x12,%ymm1,%ymm2,%ymm3");
1183         asm volatile("vpshrdq $0x12,%zmm1,%zmm2,%zmm3");
1184         asm volatile("vpshrdq $0x12,%zmm25,%zmm26,%zmm27");
1185
1186         /* AVX-512: Op code 0f 3a ce */
1187
1188         asm volatile("gf2p8affineqb $0x12,%xmm1,%xmm3");
1189
1190         asm volatile("vgf2p8affineqb $0x12,%xmm1,%xmm2,%xmm3");
1191         asm volatile("vgf2p8affineqb $0x12,%ymm1,%ymm2,%ymm3");
1192         asm volatile("vgf2p8affineqb $0x12,%zmm1,%zmm2,%zmm3");
1193         asm volatile("vgf2p8affineqb $0x12,%zmm25,%zmm26,%zmm27");
1194
1195         /* AVX-512: Op code 0f 3a cf */
1196
1197         asm volatile("gf2p8affineinvqb $0x12,%xmm1,%xmm3");
1198
1199         asm volatile("vgf2p8affineinvqb $0x12,%xmm1,%xmm2,%xmm3");
1200         asm volatile("vgf2p8affineinvqb $0x12,%ymm1,%ymm2,%ymm3");
1201         asm volatile("vgf2p8affineinvqb $0x12,%zmm1,%zmm2,%zmm3");
1202         asm volatile("vgf2p8affineinvqb $0x12,%zmm25,%zmm26,%zmm27");
1203
1204         /* AVX-512: Op code 0f 72 (Grp13) */
1205
1206         asm volatile("vprord $0x12,%zmm25,%zmm26");
1207         asm volatile("vprorq $0x12,%zmm25,%zmm26");
1208         asm volatile("vprold $0x12,%zmm29,%zmm30");
1209         asm volatile("vprolq $0x12,%zmm29,%zmm30");
1210         asm volatile("psrad  $0x2,%mm6");
1211         asm volatile("vpsrad $0x5,%ymm6,%ymm2");
1212         asm volatile("vpsrad $0x5,%zmm26,%zmm22");
1213         asm volatile("vpsraq $0x5,%zmm26,%zmm22");
1214
1215         /* AVX-512: Op code 0f 38 c6 (Grp18) */
1216
1217         asm volatile("vgatherpf0dps 0x7b(%r14,%zmm31,8){%k1}");
1218         asm volatile("vgatherpf0dpd 0x7b(%r14,%ymm31,8){%k1}");
1219         asm volatile("vgatherpf1dps 0x7b(%r14,%zmm31,8){%k1}");
1220         asm volatile("vgatherpf1dpd 0x7b(%r14,%ymm31,8){%k1}");
1221         asm volatile("vscatterpf0dps 0x7b(%r14,%zmm31,8){%k1}");
1222         asm volatile("vscatterpf0dpd 0x7b(%r14,%ymm31,8){%k1}");
1223         asm volatile("vscatterpf1dps 0x7b(%r14,%zmm31,8){%k1}");
1224         asm volatile("vscatterpf1dpd 0x7b(%r14,%ymm31,8){%k1}");
1225
1226         /* AVX-512: Op code 0f 38 c7 (Grp19) */
1227
1228         asm volatile("vgatherpf0qps 0x7b(%r14,%zmm31,8){%k1}");
1229         asm volatile("vgatherpf0qpd 0x7b(%r14,%zmm31,8){%k1}");
1230         asm volatile("vgatherpf1qps 0x7b(%r14,%zmm31,8){%k1}");
1231         asm volatile("vgatherpf1qpd 0x7b(%r14,%zmm31,8){%k1}");
1232         asm volatile("vscatterpf0qps 0x7b(%r14,%zmm31,8){%k1}");
1233         asm volatile("vscatterpf0qpd 0x7b(%r14,%zmm31,8){%k1}");
1234         asm volatile("vscatterpf1qps 0x7b(%r14,%zmm31,8){%k1}");
1235         asm volatile("vscatterpf1qpd 0x7b(%r14,%zmm31,8){%k1}");
1236
1237         /* AVX-512: Examples */
1238
1239         asm volatile("vaddpd %zmm28,%zmm29,%zmm30");
1240         asm volatile("vaddpd %zmm28,%zmm29,%zmm30{%k7}");
1241         asm volatile("vaddpd %zmm28,%zmm29,%zmm30{%k7}{z}");
1242         asm volatile("vaddpd {rn-sae},%zmm28,%zmm29,%zmm30");
1243         asm volatile("vaddpd {ru-sae},%zmm28,%zmm29,%zmm30");
1244         asm volatile("vaddpd {rd-sae},%zmm28,%zmm29,%zmm30");
1245         asm volatile("vaddpd {rz-sae},%zmm28,%zmm29,%zmm30");
1246         asm volatile("vaddpd (%rcx),%zmm29,%zmm30");
1247         asm volatile("vaddpd 0x123(%rax,%r14,8),%zmm29,%zmm30");
1248         asm volatile("vaddpd (%rcx){1to8},%zmm29,%zmm30");
1249         asm volatile("vaddpd 0x1fc0(%rdx),%zmm29,%zmm30");
1250         asm volatile("vaddpd 0x3f8(%rdx){1to8},%zmm29,%zmm30");
1251         asm volatile("vcmpeq_uqps 0x1fc(%rdx){1to16},%zmm30,%k5");
1252         asm volatile("vcmpltsd 0x123(%rax,%r14,8),%xmm29,%k5{%k7}");
1253         asm volatile("vcmplesd {sae},%xmm28,%xmm29,%k5{%k7}");
1254         asm volatile("vgetmantss $0x5b,0x123(%rax,%r14,8),%xmm29,%xmm30{%k7}");
1255
1256         /* bndmk m64, bnd */
1257
1258         asm volatile("bndmk (%rax), %bnd0");
1259         asm volatile("bndmk (%r8), %bnd0");
1260         asm volatile("bndmk (0x12345678), %bnd0");
1261         asm volatile("bndmk (%rax), %bnd3");
1262         asm volatile("bndmk (%rcx,%rax,1), %bnd0");
1263         asm volatile("bndmk 0x12345678(,%rax,1), %bnd0");
1264         asm volatile("bndmk (%rax,%rcx,1), %bnd0");
1265         asm volatile("bndmk (%rax,%rcx,8), %bnd0");
1266         asm volatile("bndmk 0x12(%rax), %bnd0");
1267         asm volatile("bndmk 0x12(%rbp), %bnd0");
1268         asm volatile("bndmk 0x12(%rcx,%rax,1), %bnd0");
1269         asm volatile("bndmk 0x12(%rbp,%rax,1), %bnd0");
1270         asm volatile("bndmk 0x12(%rax,%rcx,1), %bnd0");
1271         asm volatile("bndmk 0x12(%rax,%rcx,8), %bnd0");
1272         asm volatile("bndmk 0x12345678(%rax), %bnd0");
1273         asm volatile("bndmk 0x12345678(%rbp), %bnd0");
1274         asm volatile("bndmk 0x12345678(%rcx,%rax,1), %bnd0");
1275         asm volatile("bndmk 0x12345678(%rbp,%rax,1), %bnd0");
1276         asm volatile("bndmk 0x12345678(%rax,%rcx,1), %bnd0");
1277         asm volatile("bndmk 0x12345678(%rax,%rcx,8), %bnd0");
1278
1279         /* bndcl r/m64, bnd */
1280
1281         asm volatile("bndcl (%rax), %bnd0");
1282         asm volatile("bndcl (%r8), %bnd0");
1283         asm volatile("bndcl (0x12345678), %bnd0");
1284         asm volatile("bndcl (%rax), %bnd3");
1285         asm volatile("bndcl (%rcx,%rax,1), %bnd0");
1286         asm volatile("bndcl 0x12345678(,%rax,1), %bnd0");
1287         asm volatile("bndcl (%rax,%rcx,1), %bnd0");
1288         asm volatile("bndcl (%rax,%rcx,8), %bnd0");
1289         asm volatile("bndcl 0x12(%rax), %bnd0");
1290         asm volatile("bndcl 0x12(%rbp), %bnd0");
1291         asm volatile("bndcl 0x12(%rcx,%rax,1), %bnd0");
1292         asm volatile("bndcl 0x12(%rbp,%rax,1), %bnd0");
1293         asm volatile("bndcl 0x12(%rax,%rcx,1), %bnd0");
1294         asm volatile("bndcl 0x12(%rax,%rcx,8), %bnd0");
1295         asm volatile("bndcl 0x12345678(%rax), %bnd0");
1296         asm volatile("bndcl 0x12345678(%rbp), %bnd0");
1297         asm volatile("bndcl 0x12345678(%rcx,%rax,1), %bnd0");
1298         asm volatile("bndcl 0x12345678(%rbp,%rax,1), %bnd0");
1299         asm volatile("bndcl 0x12345678(%rax,%rcx,1), %bnd0");
1300         asm volatile("bndcl 0x12345678(%rax,%rcx,8), %bnd0");
1301         asm volatile("bndcl %rax, %bnd0");
1302
1303         /* bndcu r/m64, bnd */
1304
1305         asm volatile("bndcu (%rax), %bnd0");
1306         asm volatile("bndcu (%r8), %bnd0");
1307         asm volatile("bndcu (0x12345678), %bnd0");
1308         asm volatile("bndcu (%rax), %bnd3");
1309         asm volatile("bndcu (%rcx,%rax,1), %bnd0");
1310         asm volatile("bndcu 0x12345678(,%rax,1), %bnd0");
1311         asm volatile("bndcu (%rax,%rcx,1), %bnd0");
1312         asm volatile("bndcu (%rax,%rcx,8), %bnd0");
1313         asm volatile("bndcu 0x12(%rax), %bnd0");
1314         asm volatile("bndcu 0x12(%rbp), %bnd0");
1315         asm volatile("bndcu 0x12(%rcx,%rax,1), %bnd0");
1316         asm volatile("bndcu 0x12(%rbp,%rax,1), %bnd0");
1317         asm volatile("bndcu 0x12(%rax,%rcx,1), %bnd0");
1318         asm volatile("bndcu 0x12(%rax,%rcx,8), %bnd0");
1319         asm volatile("bndcu 0x12345678(%rax), %bnd0");
1320         asm volatile("bndcu 0x12345678(%rbp), %bnd0");
1321         asm volatile("bndcu 0x12345678(%rcx,%rax,1), %bnd0");
1322         asm volatile("bndcu 0x12345678(%rbp,%rax,1), %bnd0");
1323         asm volatile("bndcu 0x12345678(%rax,%rcx,1), %bnd0");
1324         asm volatile("bndcu 0x12345678(%rax,%rcx,8), %bnd0");
1325         asm volatile("bndcu %rax, %bnd0");
1326
1327         /* bndcn r/m64, bnd */
1328
1329         asm volatile("bndcn (%rax), %bnd0");
1330         asm volatile("bndcn (%r8), %bnd0");
1331         asm volatile("bndcn (0x12345678), %bnd0");
1332         asm volatile("bndcn (%rax), %bnd3");
1333         asm volatile("bndcn (%rcx,%rax,1), %bnd0");
1334         asm volatile("bndcn 0x12345678(,%rax,1), %bnd0");
1335         asm volatile("bndcn (%rax,%rcx,1), %bnd0");
1336         asm volatile("bndcn (%rax,%rcx,8), %bnd0");
1337         asm volatile("bndcn 0x12(%rax), %bnd0");
1338         asm volatile("bndcn 0x12(%rbp), %bnd0");
1339         asm volatile("bndcn 0x12(%rcx,%rax,1), %bnd0");
1340         asm volatile("bndcn 0x12(%rbp,%rax,1), %bnd0");
1341         asm volatile("bndcn 0x12(%rax,%rcx,1), %bnd0");
1342         asm volatile("bndcn 0x12(%rax,%rcx,8), %bnd0");
1343         asm volatile("bndcn 0x12345678(%rax), %bnd0");
1344         asm volatile("bndcn 0x12345678(%rbp), %bnd0");
1345         asm volatile("bndcn 0x12345678(%rcx,%rax,1), %bnd0");
1346         asm volatile("bndcn 0x12345678(%rbp,%rax,1), %bnd0");
1347         asm volatile("bndcn 0x12345678(%rax,%rcx,1), %bnd0");
1348         asm volatile("bndcn 0x12345678(%rax,%rcx,8), %bnd0");
1349         asm volatile("bndcn %rax, %bnd0");
1350
1351         /* bndmov m128, bnd */
1352
1353         asm volatile("bndmov (%rax), %bnd0");
1354         asm volatile("bndmov (%r8), %bnd0");
1355         asm volatile("bndmov (0x12345678), %bnd0");
1356         asm volatile("bndmov (%rax), %bnd3");
1357         asm volatile("bndmov (%rcx,%rax,1), %bnd0");
1358         asm volatile("bndmov 0x12345678(,%rax,1), %bnd0");
1359         asm volatile("bndmov (%rax,%rcx,1), %bnd0");
1360         asm volatile("bndmov (%rax,%rcx,8), %bnd0");
1361         asm volatile("bndmov 0x12(%rax), %bnd0");
1362         asm volatile("bndmov 0x12(%rbp), %bnd0");
1363         asm volatile("bndmov 0x12(%rcx,%rax,1), %bnd0");
1364         asm volatile("bndmov 0x12(%rbp,%rax,1), %bnd0");
1365         asm volatile("bndmov 0x12(%rax,%rcx,1), %bnd0");
1366         asm volatile("bndmov 0x12(%rax,%rcx,8), %bnd0");
1367         asm volatile("bndmov 0x12345678(%rax), %bnd0");
1368         asm volatile("bndmov 0x12345678(%rbp), %bnd0");
1369         asm volatile("bndmov 0x12345678(%rcx,%rax,1), %bnd0");
1370         asm volatile("bndmov 0x12345678(%rbp,%rax,1), %bnd0");
1371         asm volatile("bndmov 0x12345678(%rax,%rcx,1), %bnd0");
1372         asm volatile("bndmov 0x12345678(%rax,%rcx,8), %bnd0");
1373
1374         /* bndmov bnd, m128 */
1375
1376         asm volatile("bndmov %bnd0, (%rax)");
1377         asm volatile("bndmov %bnd0, (%r8)");
1378         asm volatile("bndmov %bnd0, (0x12345678)");
1379         asm volatile("bndmov %bnd3, (%rax)");
1380         asm volatile("bndmov %bnd0, (%rcx,%rax,1)");
1381         asm volatile("bndmov %bnd0, 0x12345678(,%rax,1)");
1382         asm volatile("bndmov %bnd0, (%rax,%rcx,1)");
1383         asm volatile("bndmov %bnd0, (%rax,%rcx,8)");
1384         asm volatile("bndmov %bnd0, 0x12(%rax)");
1385         asm volatile("bndmov %bnd0, 0x12(%rbp)");
1386         asm volatile("bndmov %bnd0, 0x12(%rcx,%rax,1)");
1387         asm volatile("bndmov %bnd0, 0x12(%rbp,%rax,1)");
1388         asm volatile("bndmov %bnd0, 0x12(%rax,%rcx,1)");
1389         asm volatile("bndmov %bnd0, 0x12(%rax,%rcx,8)");
1390         asm volatile("bndmov %bnd0, 0x12345678(%rax)");
1391         asm volatile("bndmov %bnd0, 0x12345678(%rbp)");
1392         asm volatile("bndmov %bnd0, 0x12345678(%rcx,%rax,1)");
1393         asm volatile("bndmov %bnd0, 0x12345678(%rbp,%rax,1)");
1394         asm volatile("bndmov %bnd0, 0x12345678(%rax,%rcx,1)");
1395         asm volatile("bndmov %bnd0, 0x12345678(%rax,%rcx,8)");
1396
1397         /* bndmov bnd2, bnd1 */
1398
1399         asm volatile("bndmov %bnd0, %bnd1");
1400         asm volatile("bndmov %bnd1, %bnd0");
1401
1402         /* bndldx mib, bnd */
1403
1404         asm volatile("bndldx (%rax), %bnd0");
1405         asm volatile("bndldx (%r8), %bnd0");
1406         asm volatile("bndldx (0x12345678), %bnd0");
1407         asm volatile("bndldx (%rax), %bnd3");
1408         asm volatile("bndldx (%rcx,%rax,1), %bnd0");
1409         asm volatile("bndldx 0x12345678(,%rax,1), %bnd0");
1410         asm volatile("bndldx (%rax,%rcx,1), %bnd0");
1411         asm volatile("bndldx 0x12(%rax), %bnd0");
1412         asm volatile("bndldx 0x12(%rbp), %bnd0");
1413         asm volatile("bndldx 0x12(%rcx,%rax,1), %bnd0");
1414         asm volatile("bndldx 0x12(%rbp,%rax,1), %bnd0");
1415         asm volatile("bndldx 0x12(%rax,%rcx,1), %bnd0");
1416         asm volatile("bndldx 0x12345678(%rax), %bnd0");
1417         asm volatile("bndldx 0x12345678(%rbp), %bnd0");
1418         asm volatile("bndldx 0x12345678(%rcx,%rax,1), %bnd0");
1419         asm volatile("bndldx 0x12345678(%rbp,%rax,1), %bnd0");
1420         asm volatile("bndldx 0x12345678(%rax,%rcx,1), %bnd0");
1421
1422         /* bndstx bnd, mib */
1423
1424         asm volatile("bndstx %bnd0, (%rax)");
1425         asm volatile("bndstx %bnd0, (%r8)");
1426         asm volatile("bndstx %bnd0, (0x12345678)");
1427         asm volatile("bndstx %bnd3, (%rax)");
1428         asm volatile("bndstx %bnd0, (%rcx,%rax,1)");
1429         asm volatile("bndstx %bnd0, 0x12345678(,%rax,1)");
1430         asm volatile("bndstx %bnd0, (%rax,%rcx,1)");
1431         asm volatile("bndstx %bnd0, 0x12(%rax)");
1432         asm volatile("bndstx %bnd0, 0x12(%rbp)");
1433         asm volatile("bndstx %bnd0, 0x12(%rcx,%rax,1)");
1434         asm volatile("bndstx %bnd0, 0x12(%rbp,%rax,1)");
1435         asm volatile("bndstx %bnd0, 0x12(%rax,%rcx,1)");
1436         asm volatile("bndstx %bnd0, 0x12345678(%rax)");
1437         asm volatile("bndstx %bnd0, 0x12345678(%rbp)");
1438         asm volatile("bndstx %bnd0, 0x12345678(%rcx,%rax,1)");
1439         asm volatile("bndstx %bnd0, 0x12345678(%rbp,%rax,1)");
1440         asm volatile("bndstx %bnd0, 0x12345678(%rax,%rcx,1)");
1441
1442         /* bnd prefix on call, ret, jmp and all jcc */
1443
1444         asm volatile("bnd call label1");  /* Expecting: call unconditional 0 */
1445         asm volatile("bnd call *(%eax)"); /* Expecting: call indirect      0 */
1446         asm volatile("bnd ret");          /* Expecting: ret  indirect      0 */
1447         asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0 */
1448         asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0 */
1449         asm volatile("bnd jmp *(%ecx)");  /* Expecting: jmp  indirect      0 */
1450         asm volatile("bnd jne label1");   /* Expecting: jcc  conditional   0 */
1451
1452         /* sha1rnds4 imm8, xmm2/m128, xmm1 */
1453
1454         asm volatile("sha1rnds4 $0x0, %xmm1, %xmm0");
1455         asm volatile("sha1rnds4 $0x91, %xmm7, %xmm2");
1456         asm volatile("sha1rnds4 $0x91, %xmm8, %xmm0");
1457         asm volatile("sha1rnds4 $0x91, %xmm7, %xmm8");
1458         asm volatile("sha1rnds4 $0x91, %xmm15, %xmm8");
1459         asm volatile("sha1rnds4 $0x91, (%rax), %xmm0");
1460         asm volatile("sha1rnds4 $0x91, (%r8), %xmm0");
1461         asm volatile("sha1rnds4 $0x91, (0x12345678), %xmm0");
1462         asm volatile("sha1rnds4 $0x91, (%rax), %xmm3");
1463         asm volatile("sha1rnds4 $0x91, (%rcx,%rax,1), %xmm0");
1464         asm volatile("sha1rnds4 $0x91, 0x12345678(,%rax,1), %xmm0");
1465         asm volatile("sha1rnds4 $0x91, (%rax,%rcx,1), %xmm0");
1466         asm volatile("sha1rnds4 $0x91, (%rax,%rcx,8), %xmm0");
1467         asm volatile("sha1rnds4 $0x91, 0x12(%rax), %xmm0");
1468         asm volatile("sha1rnds4 $0x91, 0x12(%rbp), %xmm0");
1469         asm volatile("sha1rnds4 $0x91, 0x12(%rcx,%rax,1), %xmm0");
1470         asm volatile("sha1rnds4 $0x91, 0x12(%rbp,%rax,1), %xmm0");
1471         asm volatile("sha1rnds4 $0x91, 0x12(%rax,%rcx,1), %xmm0");
1472         asm volatile("sha1rnds4 $0x91, 0x12(%rax,%rcx,8), %xmm0");
1473         asm volatile("sha1rnds4 $0x91, 0x12345678(%rax), %xmm0");
1474         asm volatile("sha1rnds4 $0x91, 0x12345678(%rbp), %xmm0");
1475         asm volatile("sha1rnds4 $0x91, 0x12345678(%rcx,%rax,1), %xmm0");
1476         asm volatile("sha1rnds4 $0x91, 0x12345678(%rbp,%rax,1), %xmm0");
1477         asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,1), %xmm0");
1478         asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,8), %xmm0");
1479         asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,8), %xmm15");
1480
1481         /* sha1nexte xmm2/m128, xmm1 */
1482
1483         asm volatile("sha1nexte %xmm1, %xmm0");
1484         asm volatile("sha1nexte %xmm7, %xmm2");
1485         asm volatile("sha1nexte %xmm8, %xmm0");
1486         asm volatile("sha1nexte %xmm7, %xmm8");
1487         asm volatile("sha1nexte %xmm15, %xmm8");
1488         asm volatile("sha1nexte (%rax), %xmm0");
1489         asm volatile("sha1nexte (%r8), %xmm0");
1490         asm volatile("sha1nexte (0x12345678), %xmm0");
1491         asm volatile("sha1nexte (%rax), %xmm3");
1492         asm volatile("sha1nexte (%rcx,%rax,1), %xmm0");
1493         asm volatile("sha1nexte 0x12345678(,%rax,1), %xmm0");
1494         asm volatile("sha1nexte (%rax,%rcx,1), %xmm0");
1495         asm volatile("sha1nexte (%rax,%rcx,8), %xmm0");
1496         asm volatile("sha1nexte 0x12(%rax), %xmm0");
1497         asm volatile("sha1nexte 0x12(%rbp), %xmm0");
1498         asm volatile("sha1nexte 0x12(%rcx,%rax,1), %xmm0");
1499         asm volatile("sha1nexte 0x12(%rbp,%rax,1), %xmm0");
1500         asm volatile("sha1nexte 0x12(%rax,%rcx,1), %xmm0");
1501         asm volatile("sha1nexte 0x12(%rax,%rcx,8), %xmm0");
1502         asm volatile("sha1nexte 0x12345678(%rax), %xmm0");
1503         asm volatile("sha1nexte 0x12345678(%rbp), %xmm0");
1504         asm volatile("sha1nexte 0x12345678(%rcx,%rax,1), %xmm0");
1505         asm volatile("sha1nexte 0x12345678(%rbp,%rax,1), %xmm0");
1506         asm volatile("sha1nexte 0x12345678(%rax,%rcx,1), %xmm0");
1507         asm volatile("sha1nexte 0x12345678(%rax,%rcx,8), %xmm0");
1508         asm volatile("sha1nexte 0x12345678(%rax,%rcx,8), %xmm15");
1509
1510         /* sha1msg1 xmm2/m128, xmm1 */
1511
1512         asm volatile("sha1msg1 %xmm1, %xmm0");
1513         asm volatile("sha1msg1 %xmm7, %xmm2");
1514         asm volatile("sha1msg1 %xmm8, %xmm0");
1515         asm volatile("sha1msg1 %xmm7, %xmm8");
1516         asm volatile("sha1msg1 %xmm15, %xmm8");
1517         asm volatile("sha1msg1 (%rax), %xmm0");
1518         asm volatile("sha1msg1 (%r8), %xmm0");
1519         asm volatile("sha1msg1 (0x12345678), %xmm0");
1520         asm volatile("sha1msg1 (%rax), %xmm3");
1521         asm volatile("sha1msg1 (%rcx,%rax,1), %xmm0");
1522         asm volatile("sha1msg1 0x12345678(,%rax,1), %xmm0");
1523         asm volatile("sha1msg1 (%rax,%rcx,1), %xmm0");
1524         asm volatile("sha1msg1 (%rax,%rcx,8), %xmm0");
1525         asm volatile("sha1msg1 0x12(%rax), %xmm0");
1526         asm volatile("sha1msg1 0x12(%rbp), %xmm0");
1527         asm volatile("sha1msg1 0x12(%rcx,%rax,1), %xmm0");
1528         asm volatile("sha1msg1 0x12(%rbp,%rax,1), %xmm0");
1529         asm volatile("sha1msg1 0x12(%rax,%rcx,1), %xmm0");
1530         asm volatile("sha1msg1 0x12(%rax,%rcx,8), %xmm0");
1531         asm volatile("sha1msg1 0x12345678(%rax), %xmm0");
1532         asm volatile("sha1msg1 0x12345678(%rbp), %xmm0");
1533         asm volatile("sha1msg1 0x12345678(%rcx,%rax,1), %xmm0");
1534         asm volatile("sha1msg1 0x12345678(%rbp,%rax,1), %xmm0");
1535         asm volatile("sha1msg1 0x12345678(%rax,%rcx,1), %xmm0");
1536         asm volatile("sha1msg1 0x12345678(%rax,%rcx,8), %xmm0");
1537         asm volatile("sha1msg1 0x12345678(%rax,%rcx,8), %xmm15");
1538
1539         /* sha1msg2 xmm2/m128, xmm1 */
1540
1541         asm volatile("sha1msg2 %xmm1, %xmm0");
1542         asm volatile("sha1msg2 %xmm7, %xmm2");
1543         asm volatile("sha1msg2 %xmm8, %xmm0");
1544         asm volatile("sha1msg2 %xmm7, %xmm8");
1545         asm volatile("sha1msg2 %xmm15, %xmm8");
1546         asm volatile("sha1msg2 (%rax), %xmm0");
1547         asm volatile("sha1msg2 (%r8), %xmm0");
1548         asm volatile("sha1msg2 (0x12345678), %xmm0");
1549         asm volatile("sha1msg2 (%rax), %xmm3");
1550         asm volatile("sha1msg2 (%rcx,%rax,1), %xmm0");
1551         asm volatile("sha1msg2 0x12345678(,%rax,1), %xmm0");
1552         asm volatile("sha1msg2 (%rax,%rcx,1), %xmm0");
1553         asm volatile("sha1msg2 (%rax,%rcx,8), %xmm0");
1554         asm volatile("sha1msg2 0x12(%rax), %xmm0");
1555         asm volatile("sha1msg2 0x12(%rbp), %xmm0");
1556         asm volatile("sha1msg2 0x12(%rcx,%rax,1), %xmm0");
1557         asm volatile("sha1msg2 0x12(%rbp,%rax,1), %xmm0");
1558         asm volatile("sha1msg2 0x12(%rax,%rcx,1), %xmm0");
1559         asm volatile("sha1msg2 0x12(%rax,%rcx,8), %xmm0");
1560         asm volatile("sha1msg2 0x12345678(%rax), %xmm0");
1561         asm volatile("sha1msg2 0x12345678(%rbp), %xmm0");
1562         asm volatile("sha1msg2 0x12345678(%rcx,%rax,1), %xmm0");
1563         asm volatile("sha1msg2 0x12345678(%rbp,%rax,1), %xmm0");
1564         asm volatile("sha1msg2 0x12345678(%rax,%rcx,1), %xmm0");
1565         asm volatile("sha1msg2 0x12345678(%rax,%rcx,8), %xmm0");
1566         asm volatile("sha1msg2 0x12345678(%rax,%rcx,8), %xmm15");
1567
1568         /* sha256rnds2 <XMM0>, xmm2/m128, xmm1 */
1569         /* Note sha256rnds2 has an implicit operand 'xmm0' */
1570
1571         asm volatile("sha256rnds2 %xmm4, %xmm1");
1572         asm volatile("sha256rnds2 %xmm7, %xmm2");
1573         asm volatile("sha256rnds2 %xmm8, %xmm1");
1574         asm volatile("sha256rnds2 %xmm7, %xmm8");
1575         asm volatile("sha256rnds2 %xmm15, %xmm8");
1576         asm volatile("sha256rnds2 (%rax), %xmm1");
1577         asm volatile("sha256rnds2 (%r8), %xmm1");
1578         asm volatile("sha256rnds2 (0x12345678), %xmm1");
1579         asm volatile("sha256rnds2 (%rax), %xmm3");
1580         asm volatile("sha256rnds2 (%rcx,%rax,1), %xmm1");
1581         asm volatile("sha256rnds2 0x12345678(,%rax,1), %xmm1");
1582         asm volatile("sha256rnds2 (%rax,%rcx,1), %xmm1");
1583         asm volatile("sha256rnds2 (%rax,%rcx,8), %xmm1");
1584         asm volatile("sha256rnds2 0x12(%rax), %xmm1");
1585         asm volatile("sha256rnds2 0x12(%rbp), %xmm1");
1586         asm volatile("sha256rnds2 0x12(%rcx,%rax,1), %xmm1");
1587         asm volatile("sha256rnds2 0x12(%rbp,%rax,1), %xmm1");
1588         asm volatile("sha256rnds2 0x12(%rax,%rcx,1), %xmm1");
1589         asm volatile("sha256rnds2 0x12(%rax,%rcx,8), %xmm1");
1590         asm volatile("sha256rnds2 0x12345678(%rax), %xmm1");
1591         asm volatile("sha256rnds2 0x12345678(%rbp), %xmm1");
1592         asm volatile("sha256rnds2 0x12345678(%rcx,%rax,1), %xmm1");
1593         asm volatile("sha256rnds2 0x12345678(%rbp,%rax,1), %xmm1");
1594         asm volatile("sha256rnds2 0x12345678(%rax,%rcx,1), %xmm1");
1595         asm volatile("sha256rnds2 0x12345678(%rax,%rcx,8), %xmm1");
1596         asm volatile("sha256rnds2 0x12345678(%rax,%rcx,8), %xmm15");
1597
1598         /* sha256msg1 xmm2/m128, xmm1 */
1599
1600         asm volatile("sha256msg1 %xmm1, %xmm0");
1601         asm volatile("sha256msg1 %xmm7, %xmm2");
1602         asm volatile("sha256msg1 %xmm8, %xmm0");
1603         asm volatile("sha256msg1 %xmm7, %xmm8");
1604         asm volatile("sha256msg1 %xmm15, %xmm8");
1605         asm volatile("sha256msg1 (%rax), %xmm0");
1606         asm volatile("sha256msg1 (%r8), %xmm0");
1607         asm volatile("sha256msg1 (0x12345678), %xmm0");
1608         asm volatile("sha256msg1 (%rax), %xmm3");
1609         asm volatile("sha256msg1 (%rcx,%rax,1), %xmm0");
1610         asm volatile("sha256msg1 0x12345678(,%rax,1), %xmm0");
1611         asm volatile("sha256msg1 (%rax,%rcx,1), %xmm0");
1612         asm volatile("sha256msg1 (%rax,%rcx,8), %xmm0");
1613         asm volatile("sha256msg1 0x12(%rax), %xmm0");
1614         asm volatile("sha256msg1 0x12(%rbp), %xmm0");
1615         asm volatile("sha256msg1 0x12(%rcx,%rax,1), %xmm0");
1616         asm volatile("sha256msg1 0x12(%rbp,%rax,1), %xmm0");
1617         asm volatile("sha256msg1 0x12(%rax,%rcx,1), %xmm0");
1618         asm volatile("sha256msg1 0x12(%rax,%rcx,8), %xmm0");
1619         asm volatile("sha256msg1 0x12345678(%rax), %xmm0");
1620         asm volatile("sha256msg1 0x12345678(%rbp), %xmm0");
1621         asm volatile("sha256msg1 0x12345678(%rcx,%rax,1), %xmm0");
1622         asm volatile("sha256msg1 0x12345678(%rbp,%rax,1), %xmm0");
1623         asm volatile("sha256msg1 0x12345678(%rax,%rcx,1), %xmm0");
1624         asm volatile("sha256msg1 0x12345678(%rax,%rcx,8), %xmm0");
1625         asm volatile("sha256msg1 0x12345678(%rax,%rcx,8), %xmm15");
1626
1627         /* sha256msg2 xmm2/m128, xmm1 */
1628
1629         asm volatile("sha256msg2 %xmm1, %xmm0");
1630         asm volatile("sha256msg2 %xmm7, %xmm2");
1631         asm volatile("sha256msg2 %xmm8, %xmm0");
1632         asm volatile("sha256msg2 %xmm7, %xmm8");
1633         asm volatile("sha256msg2 %xmm15, %xmm8");
1634         asm volatile("sha256msg2 (%rax), %xmm0");
1635         asm volatile("sha256msg2 (%r8), %xmm0");
1636         asm volatile("sha256msg2 (0x12345678), %xmm0");
1637         asm volatile("sha256msg2 (%rax), %xmm3");
1638         asm volatile("sha256msg2 (%rcx,%rax,1), %xmm0");
1639         asm volatile("sha256msg2 0x12345678(,%rax,1), %xmm0");
1640         asm volatile("sha256msg2 (%rax,%rcx,1), %xmm0");
1641         asm volatile("sha256msg2 (%rax,%rcx,8), %xmm0");
1642         asm volatile("sha256msg2 0x12(%rax), %xmm0");
1643         asm volatile("sha256msg2 0x12(%rbp), %xmm0");
1644         asm volatile("sha256msg2 0x12(%rcx,%rax,1), %xmm0");
1645         asm volatile("sha256msg2 0x12(%rbp,%rax,1), %xmm0");
1646         asm volatile("sha256msg2 0x12(%rax,%rcx,1), %xmm0");
1647         asm volatile("sha256msg2 0x12(%rax,%rcx,8), %xmm0");
1648         asm volatile("sha256msg2 0x12345678(%rax), %xmm0");
1649         asm volatile("sha256msg2 0x12345678(%rbp), %xmm0");
1650         asm volatile("sha256msg2 0x12345678(%rcx,%rax,1), %xmm0");
1651         asm volatile("sha256msg2 0x12345678(%rbp,%rax,1), %xmm0");
1652         asm volatile("sha256msg2 0x12345678(%rax,%rcx,1), %xmm0");
1653         asm volatile("sha256msg2 0x12345678(%rax,%rcx,8), %xmm0");
1654         asm volatile("sha256msg2 0x12345678(%rax,%rcx,8), %xmm15");
1655
1656         /* clflushopt m8 */
1657
1658         asm volatile("clflushopt (%rax)");
1659         asm volatile("clflushopt (%r8)");
1660         asm volatile("clflushopt (0x12345678)");
1661         asm volatile("clflushopt 0x12345678(%rax,%rcx,8)");
1662         asm volatile("clflushopt 0x12345678(%r8,%rcx,8)");
1663         /* Also check instructions in the same group encoding as clflushopt */
1664         asm volatile("clflush (%rax)");
1665         asm volatile("clflush (%r8)");
1666         asm volatile("sfence");
1667
1668         /* clwb m8 */
1669
1670         asm volatile("clwb (%rax)");
1671         asm volatile("clwb (%r8)");
1672         asm volatile("clwb (0x12345678)");
1673         asm volatile("clwb 0x12345678(%rax,%rcx,8)");
1674         asm volatile("clwb 0x12345678(%r8,%rcx,8)");
1675         /* Also check instructions in the same group encoding as clwb */
1676         asm volatile("xsaveopt (%rax)");
1677         asm volatile("xsaveopt (%r8)");
1678         asm volatile("mfence");
1679
1680         /* cldemote m8 */
1681
1682         asm volatile("cldemote (%rax)");
1683         asm volatile("cldemote (%r8)");
1684         asm volatile("cldemote (0x12345678)");
1685         asm volatile("cldemote 0x12345678(%rax,%rcx,8)");
1686         asm volatile("cldemote 0x12345678(%r8,%rcx,8)");
1687
1688         /* xsavec mem */
1689
1690         asm volatile("xsavec (%rax)");
1691         asm volatile("xsavec (%r8)");
1692         asm volatile("xsavec (0x12345678)");
1693         asm volatile("xsavec 0x12345678(%rax,%rcx,8)");
1694         asm volatile("xsavec 0x12345678(%r8,%rcx,8)");
1695
1696         /* xsaves mem */
1697
1698         asm volatile("xsaves (%rax)");
1699         asm volatile("xsaves (%r8)");
1700         asm volatile("xsaves (0x12345678)");
1701         asm volatile("xsaves 0x12345678(%rax,%rcx,8)");
1702         asm volatile("xsaves 0x12345678(%r8,%rcx,8)");
1703
1704         /* xrstors mem */
1705
1706         asm volatile("xrstors (%rax)");
1707         asm volatile("xrstors (%r8)");
1708         asm volatile("xrstors (0x12345678)");
1709         asm volatile("xrstors 0x12345678(%rax,%rcx,8)");
1710         asm volatile("xrstors 0x12345678(%r8,%rcx,8)");
1711
1712         /* ptwrite */
1713
1714         asm volatile("ptwrite (%rax)");
1715         asm volatile("ptwrite (%r8)");
1716         asm volatile("ptwrite (0x12345678)");
1717         asm volatile("ptwrite 0x12345678(%rax,%rcx,8)");
1718         asm volatile("ptwrite 0x12345678(%r8,%rcx,8)");
1719
1720         asm volatile("ptwritel (%rax)");
1721         asm volatile("ptwritel (%r8)");
1722         asm volatile("ptwritel (0x12345678)");
1723         asm volatile("ptwritel 0x12345678(%rax,%rcx,8)");
1724         asm volatile("ptwritel 0x12345678(%r8,%rcx,8)");
1725
1726         asm volatile("ptwriteq (%rax)");
1727         asm volatile("ptwriteq (%r8)");
1728         asm volatile("ptwriteq (0x12345678)");
1729         asm volatile("ptwriteq 0x12345678(%rax,%rcx,8)");
1730         asm volatile("ptwriteq 0x12345678(%r8,%rcx,8)");
1731
1732         /* tpause */
1733
1734         asm volatile("tpause %ebx");
1735         asm volatile("tpause %r8d");
1736
1737         /* umonitor */
1738
1739         asm volatile("umonitor %eax");
1740         asm volatile("umonitor %rax");
1741         asm volatile("umonitor %r8d");
1742
1743         /* umwait */
1744
1745         asm volatile("umwait %eax");
1746         asm volatile("umwait %r8d");
1747
1748         /* movdiri */
1749
1750         asm volatile("movdiri %rax,(%rbx)");
1751         asm volatile("movdiri %rcx,0x12345678(%rax)");
1752
1753         /* movdir64b */
1754
1755         asm volatile("movdir64b (%rax),%rbx");
1756         asm volatile("movdir64b 0x12345678(%rax),%rcx");
1757         asm volatile("movdir64b (%eax),%ebx");
1758         asm volatile("movdir64b 0x12345678(%eax),%ecx");
1759
1760         /* enqcmd */
1761
1762         asm volatile("enqcmd (%rax),%rbx");
1763         asm volatile("enqcmd 0x12345678(%rax),%rcx");
1764         asm volatile("enqcmd (%eax),%ebx");
1765         asm volatile("enqcmd 0x12345678(%eax),%ecx");
1766
1767         /* enqcmds */
1768
1769         asm volatile("enqcmds (%rax),%rbx");
1770         asm volatile("enqcmds 0x12345678(%rax),%rcx");
1771         asm volatile("enqcmds (%eax),%ebx");
1772         asm volatile("enqcmds 0x12345678(%eax),%ecx");
1773
1774         /* incsspd/q */
1775
1776         asm volatile("incsspd %eax");
1777         asm volatile("incsspd %r8d");
1778         asm volatile("incsspq %rax");
1779         asm volatile("incsspq %r8");
1780         /* Also check instructions in the same group encoding as incsspd/q */
1781         asm volatile("xrstor (%rax)");
1782         asm volatile("xrstor (%r8)");
1783         asm volatile("xrstor (0x12345678)");
1784         asm volatile("xrstor 0x12345678(%rax,%rcx,8)");
1785         asm volatile("xrstor 0x12345678(%r8,%rcx,8)");
1786         asm volatile("lfence");
1787
1788         /* rdsspd/q */
1789
1790         asm volatile("rdsspd %eax");
1791         asm volatile("rdsspd %r8d");
1792         asm volatile("rdsspq %rax");
1793         asm volatile("rdsspq %r8");
1794
1795         /* saveprevssp */
1796
1797         asm volatile("saveprevssp");
1798
1799         /* rstorssp */
1800
1801         asm volatile("rstorssp (%rax)");
1802         asm volatile("rstorssp (%r8)");
1803         asm volatile("rstorssp (0x12345678)");
1804         asm volatile("rstorssp 0x12345678(%rax,%rcx,8)");
1805         asm volatile("rstorssp 0x12345678(%r8,%rcx,8)");
1806
1807         /* wrssd/q */
1808
1809         asm volatile("wrssd %ecx,(%rax)");
1810         asm volatile("wrssd %edx,(%r8)");
1811         asm volatile("wrssd %edx,(0x12345678)");
1812         asm volatile("wrssd %edx,0x12345678(%rax,%rcx,8)");
1813         asm volatile("wrssd %edx,0x12345678(%r8,%rcx,8)");
1814         asm volatile("wrssq %rcx,(%rax)");
1815         asm volatile("wrssq %rdx,(%r8)");
1816         asm volatile("wrssq %rdx,(0x12345678)");
1817         asm volatile("wrssq %rdx,0x12345678(%rax,%rcx,8)");
1818         asm volatile("wrssq %rdx,0x12345678(%r8,%rcx,8)");
1819
1820         /* wrussd/q */
1821
1822         asm volatile("wrussd %ecx,(%rax)");
1823         asm volatile("wrussd %edx,(%r8)");
1824         asm volatile("wrussd %edx,(0x12345678)");
1825         asm volatile("wrussd %edx,0x12345678(%rax,%rcx,8)");
1826         asm volatile("wrussd %edx,0x12345678(%r8,%rcx,8)");
1827         asm volatile("wrussq %rcx,(%rax)");
1828         asm volatile("wrussq %rdx,(%r8)");
1829         asm volatile("wrussq %rdx,(0x12345678)");
1830         asm volatile("wrussq %rdx,0x12345678(%rax,%rcx,8)");
1831         asm volatile("wrussq %rdx,0x12345678(%r8,%rcx,8)");
1832
1833         /* setssbsy */
1834
1835         asm volatile("setssbsy");
1836         /* Also check instructions in the same group encoding as setssbsy */
1837         asm volatile("rdpkru");
1838         asm volatile("wrpkru");
1839
1840         /* clrssbsy */
1841
1842         asm volatile("clrssbsy (%rax)");
1843         asm volatile("clrssbsy (%r8)");
1844         asm volatile("clrssbsy (0x12345678)");
1845         asm volatile("clrssbsy 0x12345678(%rax,%rcx,8)");
1846         asm volatile("clrssbsy 0x12345678(%r8,%rcx,8)");
1847
1848         /* endbr32/64 */
1849
1850         asm volatile("endbr32");
1851         asm volatile("endbr64");
1852
1853         /* call with/without notrack prefix */
1854
1855         asm volatile("callq *%rax");                            /* Expecting: call indirect 0 */
1856         asm volatile("callq *(%rax)");                          /* Expecting: call indirect 0 */
1857         asm volatile("callq *(%r8)");                           /* Expecting: call indirect 0 */
1858         asm volatile("callq *(0x12345678)");                    /* Expecting: call indirect 0 */
1859         asm volatile("callq *0x12345678(%rax,%rcx,8)");         /* Expecting: call indirect 0 */
1860         asm volatile("callq *0x12345678(%r8,%rcx,8)");          /* Expecting: call indirect 0 */
1861
1862         asm volatile("bnd callq *%rax");                        /* Expecting: call indirect 0 */
1863         asm volatile("bnd callq *(%rax)");                      /* Expecting: call indirect 0 */
1864         asm volatile("bnd callq *(%r8)");                       /* Expecting: call indirect 0 */
1865         asm volatile("bnd callq *(0x12345678)");                /* Expecting: call indirect 0 */
1866         asm volatile("bnd callq *0x12345678(%rax,%rcx,8)");     /* Expecting: call indirect 0 */
1867         asm volatile("bnd callq *0x12345678(%r8,%rcx,8)");      /* Expecting: call indirect 0 */
1868
1869         asm volatile("notrack callq *%rax");                    /* Expecting: call indirect 0 */
1870         asm volatile("notrack callq *(%rax)");                  /* Expecting: call indirect 0 */
1871         asm volatile("notrack callq *(%r8)");                   /* Expecting: call indirect 0 */
1872         asm volatile("notrack callq *(0x12345678)");            /* Expecting: call indirect 0 */
1873         asm volatile("notrack callq *0x12345678(%rax,%rcx,8)"); /* Expecting: call indirect 0 */
1874         asm volatile("notrack callq *0x12345678(%r8,%rcx,8)");  /* Expecting: call indirect 0 */
1875
1876         asm volatile("notrack bnd callq *%rax");                /* Expecting: call indirect 0 */
1877         asm volatile("notrack bnd callq *(%rax)");              /* Expecting: call indirect 0 */
1878         asm volatile("notrack bnd callq *(%r8)");               /* Expecting: call indirect 0 */
1879         asm volatile("notrack bnd callq *(0x12345678)");        /* Expecting: call indirect 0 */
1880         asm volatile("notrack bnd callq *0x12345678(%rax,%rcx,8)");     /* Expecting: call indirect 0 */
1881         asm volatile("notrack bnd callq *0x12345678(%r8,%rcx,8)");      /* Expecting: call indirect 0 */
1882
1883         /* jmp with/without notrack prefix */
1884
1885         asm volatile("jmpq *%rax");                             /* Expecting: jmp indirect 0 */
1886         asm volatile("jmpq *(%rax)");                           /* Expecting: jmp indirect 0 */
1887         asm volatile("jmpq *(%r8)");                            /* Expecting: jmp indirect 0 */
1888         asm volatile("jmpq *(0x12345678)");                     /* Expecting: jmp indirect 0 */
1889         asm volatile("jmpq *0x12345678(%rax,%rcx,8)");          /* Expecting: jmp indirect 0 */
1890         asm volatile("jmpq *0x12345678(%r8,%rcx,8)");           /* Expecting: jmp indirect 0 */
1891
1892         asm volatile("bnd jmpq *%rax");                         /* Expecting: jmp indirect 0 */
1893         asm volatile("bnd jmpq *(%rax)");                       /* Expecting: jmp indirect 0 */
1894         asm volatile("bnd jmpq *(%r8)");                        /* Expecting: jmp indirect 0 */
1895         asm volatile("bnd jmpq *(0x12345678)");                 /* Expecting: jmp indirect 0 */
1896         asm volatile("bnd jmpq *0x12345678(%rax,%rcx,8)");      /* Expecting: jmp indirect 0 */
1897         asm volatile("bnd jmpq *0x12345678(%r8,%rcx,8)");       /* Expecting: jmp indirect 0 */
1898
1899         asm volatile("notrack jmpq *%rax");                     /* Expecting: jmp indirect 0 */
1900         asm volatile("notrack jmpq *(%rax)");                   /* Expecting: jmp indirect 0 */
1901         asm volatile("notrack jmpq *(%r8)");                    /* Expecting: jmp indirect 0 */
1902         asm volatile("notrack jmpq *(0x12345678)");             /* Expecting: jmp indirect 0 */
1903         asm volatile("notrack jmpq *0x12345678(%rax,%rcx,8)");  /* Expecting: jmp indirect 0 */
1904         asm volatile("notrack jmpq *0x12345678(%r8,%rcx,8)");   /* Expecting: jmp indirect 0 */
1905
1906         asm volatile("notrack bnd jmpq *%rax");                 /* Expecting: jmp indirect 0 */
1907         asm volatile("notrack bnd jmpq *(%rax)");               /* Expecting: jmp indirect 0 */
1908         asm volatile("notrack bnd jmpq *(%r8)");                /* Expecting: jmp indirect 0 */
1909         asm volatile("notrack bnd jmpq *(0x12345678)");         /* Expecting: jmp indirect 0 */
1910         asm volatile("notrack bnd jmpq *0x12345678(%rax,%rcx,8)");      /* Expecting: jmp indirect 0 */
1911         asm volatile("notrack bnd jmpq *0x12345678(%r8,%rcx,8)");       /* Expecting: jmp indirect 0 */
1912
1913         /* AMX */
1914
1915         asm volatile("ldtilecfg (%rax,%rcx,8)");
1916         asm volatile("ldtilecfg (%r8,%rcx,8)");
1917         asm volatile("sttilecfg (%rax,%rcx,8)");
1918         asm volatile("sttilecfg (%r8,%rcx,8)");
1919         asm volatile("tdpbf16ps %tmm0, %tmm1, %tmm2");
1920         asm volatile("tdpbssd %tmm0, %tmm1, %tmm2");
1921         asm volatile("tdpbsud %tmm0, %tmm1, %tmm2");
1922         asm volatile("tdpbusd %tmm0, %tmm1, %tmm2");
1923         asm volatile("tdpbuud %tmm0, %tmm1, %tmm2");
1924         asm volatile("tileloadd (%rax,%rcx,8), %tmm1");
1925         asm volatile("tileloadd (%r8,%rcx,8), %tmm2");
1926         asm volatile("tileloaddt1 (%rax,%rcx,8), %tmm1");
1927         asm volatile("tileloaddt1 (%r8,%rcx,8), %tmm2");
1928         asm volatile("tilerelease");
1929         asm volatile("tilestored %tmm1, (%rax,%rcx,8)");
1930         asm volatile("tilestored %tmm2, (%r8,%rcx,8)");
1931         asm volatile("tilezero %tmm0");
1932         asm volatile("tilezero %tmm7");
1933
1934         /* User Interrupt */
1935
1936         asm volatile("clui");
1937         asm volatile("senduipi %rax");
1938         asm volatile("senduipi %r8");
1939         asm volatile("stui");
1940         asm volatile("testui");
1941         asm volatile("uiret");
1942
1943         /* AVX512-FP16 */
1944
1945         asm volatile("vaddph %zmm3, %zmm2, %zmm1");
1946         asm volatile("vaddph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
1947         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
1948         asm volatile("vaddph %xmm3, %xmm2, %xmm1");
1949         asm volatile("vaddph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
1950         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
1951         asm volatile("vaddph %ymm3, %ymm2, %ymm1");
1952         asm volatile("vaddph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
1953         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
1954         asm volatile("vaddsh %xmm3, %xmm2, %xmm1");
1955         asm volatile("vaddsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
1956         asm volatile("vaddsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
1957         asm volatile("vcmpph $0x12, %zmm3, %zmm2, %k5");
1958         asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %zmm2, %k5");
1959         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %zmm2, %k5");
1960         asm volatile("vcmpph $0x12, %xmm3, %xmm2, %k5");
1961         asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %k5");
1962         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
1963         asm volatile("vcmpph $0x12, %ymm3, %ymm2, %k5");
1964         asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %ymm2, %k5");
1965         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %ymm2, %k5");
1966         asm volatile("vcmpsh $0x12, %xmm3, %xmm2, %k5");
1967         asm volatile("vcmpsh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %k5");
1968         asm volatile("vcmpsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
1969         asm volatile("vcomish %xmm2, %xmm1");
1970         asm volatile("vcomish 0x12345678(%rax,%rcx,8), %xmm1");
1971         asm volatile("vcomish 0x12345678(%eax,%ecx,8), %xmm1");
1972         asm volatile("vcvtdq2ph %zmm2, %ymm1");
1973         asm volatile("vcvtdq2ph 0x12345678(%rax,%rcx,8), %ymm1");
1974         asm volatile("vcvtdq2ph 0x12345678(%eax,%ecx,8), %ymm1");
1975         asm volatile("vcvtdq2ph %xmm2, %xmm1");
1976         asm volatile("vcvtdq2ph %ymm2, %xmm1");
1977         asm volatile("vcvtpd2ph %zmm2, %xmm1");
1978         asm volatile("vcvtpd2ph %xmm2, %xmm1");
1979         asm volatile("vcvtpd2ph %ymm2, %xmm1");
1980         asm volatile("vcvtph2dq %ymm2, %zmm1");
1981         asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %zmm1");
1982         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %zmm1");
1983         asm volatile("vcvtph2dq %xmm2, %xmm1");
1984         asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %xmm1");
1985         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %xmm1");
1986         asm volatile("vcvtph2dq %xmm2, %ymm1");
1987         asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %ymm1");
1988         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %ymm1");
1989         asm volatile("vcvtph2pd %xmm2, %zmm1");
1990         asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %zmm1");
1991         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %zmm1");
1992         asm volatile("vcvtph2pd %xmm2, %xmm1");
1993         asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %xmm1");
1994         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %xmm1");
1995         asm volatile("vcvtph2pd %xmm2, %ymm1");
1996         asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %ymm1");
1997         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %ymm1");
1998         asm volatile("vcvtph2ps %ymm2, %zmm1");
1999         asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %zmm1");
2000         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %zmm1");
2001         asm volatile("vcvtph2ps %xmm2, %xmm1");
2002         asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %xmm1");
2003         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
2004         asm volatile("vcvtph2ps %xmm2, %ymm1");
2005         asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %ymm1");
2006         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
2007         asm volatile("vcvtph2ps %xmm2, %xmm1");
2008         asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %xmm1");
2009         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
2010         asm volatile("vcvtph2ps %xmm2, %ymm1");
2011         asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %ymm1");
2012         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
2013         asm volatile("vcvtph2psx %ymm2, %zmm1");
2014         asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %zmm1");
2015         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %zmm1");
2016         asm volatile("vcvtph2psx %xmm2, %xmm1");
2017         asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %xmm1");
2018         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %xmm1");
2019         asm volatile("vcvtph2psx %xmm2, %ymm1");
2020         asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %ymm1");
2021         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %ymm1");
2022         asm volatile("vcvtph2qq %xmm2, %zmm1");
2023         asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %zmm1");
2024         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %zmm1");
2025         asm volatile("vcvtph2qq %xmm2, %xmm1");
2026         asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %xmm1");
2027         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %xmm1");
2028         asm volatile("vcvtph2qq %xmm2, %ymm1");
2029         asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %ymm1");
2030         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %ymm1");
2031         asm volatile("vcvtph2udq %ymm2, %zmm1");
2032         asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %zmm1");
2033         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %zmm1");
2034         asm volatile("vcvtph2udq %xmm2, %xmm1");
2035         asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %xmm1");
2036         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %xmm1");
2037         asm volatile("vcvtph2udq %xmm2, %ymm1");
2038         asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %ymm1");
2039         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %ymm1");
2040         asm volatile("vcvtph2uqq %xmm2, %zmm1");
2041         asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %zmm1");
2042         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
2043         asm volatile("vcvtph2uqq %xmm2, %xmm1");
2044         asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %xmm1");
2045         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
2046         asm volatile("vcvtph2uqq %xmm2, %ymm1");
2047         asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %ymm1");
2048         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
2049         asm volatile("vcvtph2uw %zmm2, %zmm1");
2050         asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %zmm1");
2051         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %zmm1");
2052         asm volatile("vcvtph2uw %xmm2, %xmm1");
2053         asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %xmm1");
2054         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %xmm1");
2055         asm volatile("vcvtph2uw %ymm2, %ymm1");
2056         asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %ymm1");
2057         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %ymm1");
2058         asm volatile("vcvtph2w %zmm2, %zmm1");
2059         asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %zmm1");
2060         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %zmm1");
2061         asm volatile("vcvtph2w %xmm2, %xmm1");
2062         asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %xmm1");
2063         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %xmm1");
2064         asm volatile("vcvtph2w %ymm2, %ymm1");
2065         asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %ymm1");
2066         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %ymm1");
2067         asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%rax,%rcx,8)");
2068         asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%eax,%ecx,8)");
2069         asm volatile("vcvtps2ph $0x12, %zmm2, %ymm1");
2070         asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%rax,%rcx,8)");
2071         asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%eax,%ecx,8)");
2072         asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%rax,%rcx,8)");
2073         asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%eax,%ecx,8)");
2074         asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
2075         asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
2076         asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
2077         asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%rax,%rcx,8)");
2078         asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%eax,%ecx,8)");
2079         asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
2080         asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%rax,%rcx,8)");
2081         asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%eax,%ecx,8)");
2082         asm volatile("vcvtps2phx %zmm2, %ymm1");
2083         asm volatile("vcvtps2phx 0x12345678(%rax,%rcx,8), %ymm1");
2084         asm volatile("vcvtps2phx 0x12345678(%eax,%ecx,8), %ymm1");
2085         asm volatile("vcvtps2phx %xmm2, %xmm1");
2086         asm volatile("vcvtps2phx %ymm2, %xmm1");
2087         asm volatile("vcvtqq2ph %zmm2, %xmm1");
2088         asm volatile("vcvtqq2ph %xmm2, %xmm1");
2089         asm volatile("vcvtqq2ph %ymm2, %xmm1");
2090         asm volatile("vcvtsd2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2091         asm volatile("vcvtsh2sd 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2092         asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %eax");
2093         asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %rax");
2094         asm volatile("vcvtsh2ss 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2095         asm volatile("vcvtsh2usi %xmm1, %eax");
2096         asm volatile("vcvtsh2usi 0x12345678(%rax,%rcx,8), %eax");
2097         asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %eax");
2098         asm volatile("vcvtsh2usi %xmm1, %rax");
2099         asm volatile("vcvtsh2usi 0x12345678(%rax,%rcx,8), %rax");
2100         asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %rax");
2101         asm volatile("vcvtsi2sh %eax, %xmm2, %xmm1");
2102         asm volatile("vcvtsi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2103         asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2104         asm volatile("vcvtsi2sh %rax, %xmm2, %xmm1");
2105         asm volatile("vcvtsi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2106         asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2107         asm volatile("vcvtss2sh %xmm3, %xmm2, %xmm1");
2108         asm volatile("vcvtss2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2109         asm volatile("vcvtss2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2110         asm volatile("vcvttph2dq %ymm2, %zmm1");
2111         asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %zmm1");
2112         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %zmm1");
2113         asm volatile("vcvttph2dq %xmm2, %xmm1");
2114         asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %xmm1");
2115         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %xmm1");
2116         asm volatile("vcvttph2dq %xmm2, %ymm1");
2117         asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %ymm1");
2118         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %ymm1");
2119         asm volatile("vcvttph2qq %xmm2, %zmm1");
2120         asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %zmm1");
2121         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %zmm1");
2122         asm volatile("vcvttph2qq %xmm2, %xmm1");
2123         asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %xmm1");
2124         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %xmm1");
2125         asm volatile("vcvttph2qq %xmm2, %ymm1");
2126         asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %ymm1");
2127         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %ymm1");
2128         asm volatile("vcvttph2udq %ymm2, %zmm1");
2129         asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %zmm1");
2130         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %zmm1");
2131         asm volatile("vcvttph2udq %xmm2, %xmm1");
2132         asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %xmm1");
2133         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %xmm1");
2134         asm volatile("vcvttph2udq %xmm2, %ymm1");
2135         asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %ymm1");
2136         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %ymm1");
2137         asm volatile("vcvttph2uqq %xmm2, %zmm1");
2138         asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %zmm1");
2139         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
2140         asm volatile("vcvttph2uqq %xmm2, %xmm1");
2141         asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %xmm1");
2142         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
2143         asm volatile("vcvttph2uqq %xmm2, %ymm1");
2144         asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %ymm1");
2145         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
2146         asm volatile("vcvttph2uw %zmm2, %zmm1");
2147         asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %zmm1");
2148         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %zmm1");
2149         asm volatile("vcvttph2uw %xmm2, %xmm1");
2150         asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %xmm1");
2151         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %xmm1");
2152         asm volatile("vcvttph2uw %ymm2, %ymm1");
2153         asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %ymm1");
2154         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %ymm1");
2155         asm volatile("vcvttph2w %zmm2, %zmm1");
2156         asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %zmm1");
2157         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %zmm1");
2158         asm volatile("vcvttph2w %xmm2, %xmm1");
2159         asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %xmm1");
2160         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %xmm1");
2161         asm volatile("vcvttph2w %ymm2, %ymm1");
2162         asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %ymm1");
2163         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %ymm1");
2164         asm volatile("vcvttsh2si %xmm1, %eax");
2165         asm volatile("vcvttsh2si 0x12345678(%rax,%rcx,8), %eax");
2166         asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %eax");
2167         asm volatile("vcvttsh2si %xmm1, %rax");
2168         asm volatile("vcvttsh2si 0x12345678(%rax,%rcx,8), %rax");
2169         asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %rax");
2170         asm volatile("vcvttsh2usi %xmm1, %eax");
2171         asm volatile("vcvttsh2usi 0x12345678(%rax,%rcx,8), %eax");
2172         asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %eax");
2173         asm volatile("vcvttsh2usi %xmm1, %rax");
2174         asm volatile("vcvttsh2usi 0x12345678(%rax,%rcx,8), %rax");
2175         asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %rax");
2176         asm volatile("vcvtudq2ph %zmm2, %ymm1");
2177         asm volatile("vcvtudq2ph 0x12345678(%rax,%rcx,8), %ymm1");
2178         asm volatile("vcvtudq2ph 0x12345678(%eax,%ecx,8), %ymm1");
2179         asm volatile("vcvtudq2ph %xmm2, %xmm1");
2180         asm volatile("vcvtudq2ph %ymm2, %xmm1");
2181         asm volatile("vcvtuqq2ph %zmm2, %xmm1");
2182         asm volatile("vcvtuqq2ph %xmm2, %xmm1");
2183         asm volatile("vcvtuqq2ph %ymm2, %xmm1");
2184         asm volatile("vcvtusi2sh %eax, %xmm2, %xmm1");
2185         asm volatile("vcvtusi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2186         asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2187         asm volatile("vcvtusi2sh %rax, %xmm2, %xmm1");
2188         asm volatile("vcvtusi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2189         asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2190         asm volatile("vcvtuw2ph %zmm2, %zmm1");
2191         asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %zmm1");
2192         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %zmm1");
2193         asm volatile("vcvtuw2ph %xmm2, %xmm1");
2194         asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %xmm1");
2195         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %xmm1");
2196         asm volatile("vcvtuw2ph %ymm2, %ymm1");
2197         asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %ymm1");
2198         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %ymm1");
2199         asm volatile("vcvtw2ph %zmm2, %zmm1");
2200         asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %zmm1");
2201         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %zmm1");
2202         asm volatile("vcvtw2ph %xmm2, %xmm1");
2203         asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %xmm1");
2204         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %xmm1");
2205         asm volatile("vcvtw2ph %ymm2, %ymm1");
2206         asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %ymm1");
2207         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %ymm1");
2208         asm volatile("vdivph %zmm3, %zmm2, %zmm1");
2209         asm volatile("vdivph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2210         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2211         asm volatile("vdivph %xmm3, %xmm2, %xmm1");
2212         asm volatile("vdivph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2213         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2214         asm volatile("vdivph %ymm3, %ymm2, %ymm1");
2215         asm volatile("vdivph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2216         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2217         asm volatile("vdivsh %xmm3, %xmm2, %xmm1");
2218         asm volatile("vdivsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2219         asm volatile("vdivsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2220         asm volatile("vfcmaddcph %zmm3, %zmm2, %zmm1");
2221         asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2222         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2223         asm volatile("vfcmaddcph %xmm3, %xmm2, %xmm1");
2224         asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2225         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2226         asm volatile("vfcmaddcph %ymm3, %ymm2, %ymm1");
2227         asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2228         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2229         asm volatile("vfcmaddcsh %xmm3, %xmm2, %xmm1");
2230         asm volatile("vfcmaddcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2231         asm volatile("vfcmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2232         asm volatile("vfcmulcph %zmm3, %zmm2, %zmm1");
2233         asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2234         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2235         asm volatile("vfcmulcph %xmm3, %xmm2, %xmm1");
2236         asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2237         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2238         asm volatile("vfcmulcph %ymm3, %ymm2, %ymm1");
2239         asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2240         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2241         asm volatile("vfcmulcsh %xmm3, %xmm2, %xmm1");
2242         asm volatile("vfcmulcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2243         asm volatile("vfcmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2244         asm volatile("vfmadd132ph %zmm3, %zmm2, %zmm1");
2245         asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2246         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2247         asm volatile("vfmadd132ph %xmm3, %xmm2, %xmm1");
2248         asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2249         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2250         asm volatile("vfmadd132ph %ymm3, %ymm2, %ymm1");
2251         asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2252         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2253         asm volatile("vfmadd132sh %xmm3, %xmm2, %xmm1");
2254         asm volatile("vfmadd132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2255         asm volatile("vfmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2256         asm volatile("vfmadd213ph %zmm3, %zmm2, %zmm1");
2257         asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2258         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2259         asm volatile("vfmadd213ph %xmm3, %xmm2, %xmm1");
2260         asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2261         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2262         asm volatile("vfmadd213ph %ymm3, %ymm2, %ymm1");
2263         asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2264         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2265         asm volatile("vfmadd213sh %xmm3, %xmm2, %xmm1");
2266         asm volatile("vfmadd213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2267         asm volatile("vfmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2268         asm volatile("vfmadd231ph %zmm3, %zmm2, %zmm1");
2269         asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2270         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2271         asm volatile("vfmadd231ph %xmm3, %xmm2, %xmm1");
2272         asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2273         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2274         asm volatile("vfmadd231ph %ymm3, %ymm2, %ymm1");
2275         asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2276         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2277         asm volatile("vfmadd231sh %xmm3, %xmm2, %xmm1");
2278         asm volatile("vfmadd231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2279         asm volatile("vfmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2280         asm volatile("vfmaddcph %zmm3, %zmm2, %zmm1");
2281         asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2282         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2283         asm volatile("vfmaddcph %xmm3, %xmm2, %xmm1");
2284         asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2285         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2286         asm volatile("vfmaddcph %ymm3, %ymm2, %ymm1");
2287         asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2288         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2289         asm volatile("vfmaddcsh %xmm3, %xmm2, %xmm1");
2290         asm volatile("vfmaddcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2291         asm volatile("vfmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2292         asm volatile("vfmaddsub132ph %zmm3, %zmm2, %zmm1");
2293         asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2294         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2295         asm volatile("vfmaddsub132ph %xmm3, %xmm2, %xmm1");
2296         asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2297         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2298         asm volatile("vfmaddsub132ph %ymm3, %ymm2, %ymm1");
2299         asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2300         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2301         asm volatile("vfmaddsub213ph %zmm3, %zmm2, %zmm1");
2302         asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2303         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2304         asm volatile("vfmaddsub213ph %xmm3, %xmm2, %xmm1");
2305         asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2306         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2307         asm volatile("vfmaddsub213ph %ymm3, %ymm2, %ymm1");
2308         asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2309         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2310         asm volatile("vfmaddsub231ph %zmm3, %zmm2, %zmm1");
2311         asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2312         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2313         asm volatile("vfmaddsub231ph %xmm3, %xmm2, %xmm1");
2314         asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2315         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2316         asm volatile("vfmaddsub231ph %ymm3, %ymm2, %ymm1");
2317         asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2318         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2319         asm volatile("vfmsub132ph %zmm3, %zmm2, %zmm1");
2320         asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2321         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2322         asm volatile("vfmsub132ph %xmm3, %xmm2, %xmm1");
2323         asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2324         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2325         asm volatile("vfmsub132ph %ymm3, %ymm2, %ymm1");
2326         asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2327         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2328         asm volatile("vfmsub132sh %xmm3, %xmm2, %xmm1");
2329         asm volatile("vfmsub132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2330         asm volatile("vfmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2331         asm volatile("vfmsub213ph %zmm3, %zmm2, %zmm1");
2332         asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2333         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2334         asm volatile("vfmsub213ph %xmm3, %xmm2, %xmm1");
2335         asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2336         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2337         asm volatile("vfmsub213ph %ymm3, %ymm2, %ymm1");
2338         asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2339         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2340         asm volatile("vfmsub213sh %xmm3, %xmm2, %xmm1");
2341         asm volatile("vfmsub213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2342         asm volatile("vfmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2343         asm volatile("vfmsub231ph %zmm3, %zmm2, %zmm1");
2344         asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2345         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2346         asm volatile("vfmsub231ph %xmm3, %xmm2, %xmm1");
2347         asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2348         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2349         asm volatile("vfmsub231ph %ymm3, %ymm2, %ymm1");
2350         asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2351         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2352         asm volatile("vfmsub231sh %xmm3, %xmm2, %xmm1");
2353         asm volatile("vfmsub231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2354         asm volatile("vfmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2355         asm volatile("vfmsubadd132ph %zmm3, %zmm2, %zmm1");
2356         asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2357         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2358         asm volatile("vfmsubadd132ph %xmm3, %xmm2, %xmm1");
2359         asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2360         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2361         asm volatile("vfmsubadd132ph %ymm3, %ymm2, %ymm1");
2362         asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2363         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2364         asm volatile("vfmsubadd213ph %zmm3, %zmm2, %zmm1");
2365         asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2366         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2367         asm volatile("vfmsubadd213ph %xmm3, %xmm2, %xmm1");
2368         asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2369         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2370         asm volatile("vfmsubadd213ph %ymm3, %ymm2, %ymm1");
2371         asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2372         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2373         asm volatile("vfmsubadd231ph %zmm3, %zmm2, %zmm1");
2374         asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2375         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2376         asm volatile("vfmsubadd231ph %xmm3, %xmm2, %xmm1");
2377         asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2378         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2379         asm volatile("vfmsubadd231ph %ymm3, %ymm2, %ymm1");
2380         asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2381         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2382         asm volatile("vfmulcph %zmm3, %zmm2, %zmm1");
2383         asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2384         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2385         asm volatile("vfmulcph %xmm3, %xmm2, %xmm1");
2386         asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2387         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2388         asm volatile("vfmulcph %ymm3, %ymm2, %ymm1");
2389         asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2390         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2391         asm volatile("vfmulcsh %xmm3, %xmm2, %xmm1");
2392         asm volatile("vfmulcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2393         asm volatile("vfmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2394         asm volatile("vfnmadd132ph %zmm3, %zmm2, %zmm1");
2395         asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2396         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2397         asm volatile("vfnmadd132ph %xmm3, %xmm2, %xmm1");
2398         asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2399         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2400         asm volatile("vfnmadd132ph %ymm3, %ymm2, %ymm1");
2401         asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2402         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2403         asm volatile("vfnmadd132sh %xmm3, %xmm2, %xmm1");
2404         asm volatile("vfnmadd132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2405         asm volatile("vfnmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2406         asm volatile("vfnmadd213ph %zmm3, %zmm2, %zmm1");
2407         asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2408         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2409         asm volatile("vfnmadd213ph %xmm3, %xmm2, %xmm1");
2410         asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2411         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2412         asm volatile("vfnmadd213ph %ymm3, %ymm2, %ymm1");
2413         asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2414         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2415         asm volatile("vfnmadd213sh %xmm3, %xmm2, %xmm1");
2416         asm volatile("vfnmadd213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2417         asm volatile("vfnmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2418         asm volatile("vfnmadd231ph %zmm3, %zmm2, %zmm1");
2419         asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2420         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2421         asm volatile("vfnmadd231ph %xmm3, %xmm2, %xmm1");
2422         asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2423         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2424         asm volatile("vfnmadd231ph %ymm3, %ymm2, %ymm1");
2425         asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2426         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2427         asm volatile("vfnmadd231sh %xmm3, %xmm2, %xmm1");
2428         asm volatile("vfnmadd231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2429         asm volatile("vfnmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2430         asm volatile("vfnmsub132ph %zmm3, %zmm2, %zmm1");
2431         asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2432         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2433         asm volatile("vfnmsub132ph %xmm3, %xmm2, %xmm1");
2434         asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2435         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2436         asm volatile("vfnmsub132ph %ymm3, %ymm2, %ymm1");
2437         asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2438         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2439         asm volatile("vfnmsub132sh %xmm3, %xmm2, %xmm1");
2440         asm volatile("vfnmsub132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2441         asm volatile("vfnmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2442         asm volatile("vfnmsub213ph %zmm3, %zmm2, %zmm1");
2443         asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2444         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2445         asm volatile("vfnmsub213ph %xmm3, %xmm2, %xmm1");
2446         asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2447         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2448         asm volatile("vfnmsub213ph %ymm3, %ymm2, %ymm1");
2449         asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2450         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2451         asm volatile("vfnmsub213sh %xmm3, %xmm2, %xmm1");
2452         asm volatile("vfnmsub213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2453         asm volatile("vfnmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2454         asm volatile("vfnmsub231ph %zmm3, %zmm2, %zmm1");
2455         asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2456         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2457         asm volatile("vfnmsub231ph %xmm3, %xmm2, %xmm1");
2458         asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2459         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2460         asm volatile("vfnmsub231ph %ymm3, %ymm2, %ymm1");
2461         asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2462         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2463         asm volatile("vfnmsub231sh %xmm3, %xmm2, %xmm1");
2464         asm volatile("vfnmsub231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2465         asm volatile("vfnmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2466         asm volatile("vfpclassph $0x12, %zmm1, %k5");
2467         asm volatile("vfpclassph $0x12, %xmm1, %k5");
2468         asm volatile("vfpclassph $0x12, %ymm1, %k5");
2469         asm volatile("vfpclasssh $0x12, %xmm1, %k5");
2470         asm volatile("vfpclasssh $0x12, 0x12345678(%rax,%rcx,8), %k5");
2471         asm volatile("vfpclasssh $0x12, 0x12345678(%eax,%ecx,8), %k5");
2472         asm volatile("vgetexpph %zmm2, %zmm1");
2473         asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %zmm1");
2474         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %zmm1");
2475         asm volatile("vgetexpph %xmm2, %xmm1");
2476         asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %xmm1");
2477         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %xmm1");
2478         asm volatile("vgetexpph %ymm2, %ymm1");
2479         asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %ymm1");
2480         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %ymm1");
2481         asm volatile("vgetexpsh %xmm3, %xmm2, %xmm1");
2482         asm volatile("vgetexpsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2483         asm volatile("vgetexpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2484         asm volatile("vgetmantph $0x12, %zmm2, %zmm1");
2485         asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");
2486         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
2487         asm volatile("vgetmantph $0x12, %xmm2, %xmm1");
2488         asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");
2489         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
2490         asm volatile("vgetmantph $0x12, %ymm2, %ymm1");
2491         asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");
2492         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
2493         asm volatile("vgetmantsh $0x12, %xmm3, %xmm2, %xmm1");
2494         asm volatile("vgetmantsh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2495         asm volatile("vgetmantsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2496         asm volatile("vmaxph %zmm3, %zmm2, %zmm1");
2497         asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2498         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2499         asm volatile("vmaxph %xmm3, %xmm2, %xmm1");
2500         asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2501         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2502         asm volatile("vmaxph %ymm3, %ymm2, %ymm1");
2503         asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2504         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2505         asm volatile("vmaxsh %xmm3, %xmm2, %xmm1");
2506         asm volatile("vmaxsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2507         asm volatile("vmaxsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2508         asm volatile("vminph %zmm3, %zmm2, %zmm1");
2509         asm volatile("vminph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2510         asm volatile("vminph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2511         asm volatile("vminph %xmm3, %xmm2, %xmm1");
2512         asm volatile("vminph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2513         asm volatile("vminph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2514         asm volatile("vminph %ymm3, %ymm2, %ymm1");
2515         asm volatile("vminph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2516         asm volatile("vminph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2517         asm volatile("vminsh %xmm3, %xmm2, %xmm1");
2518         asm volatile("vminsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2519         asm volatile("vminsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2520         asm volatile("vmovsh %xmm1, 0x12345678(%rax,%rcx,8)");
2521         asm volatile("vmovsh %xmm1, 0x12345678(%eax,%ecx,8)");
2522         asm volatile("vmovsh 0x12345678(%rax,%rcx,8), %xmm1");
2523         asm volatile("vmovsh 0x12345678(%eax,%ecx,8), %xmm1");
2524         asm volatile("vmovsh %xmm3, %xmm2, %xmm1");
2525         asm volatile("vmovw %xmm1, %eax");
2526         asm volatile("vmovw %xmm1, 0x12345678(%rax,%rcx,8)");
2527         asm volatile("vmovw %xmm1, 0x12345678(%eax,%ecx,8)");
2528         asm volatile("vmovw %eax, %xmm1");
2529         asm volatile("vmovw 0x12345678(%rax,%rcx,8), %xmm1");
2530         asm volatile("vmovw 0x12345678(%eax,%ecx,8), %xmm1");
2531         asm volatile("vmulph %zmm3, %zmm2, %zmm1");
2532         asm volatile("vmulph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2533         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2534         asm volatile("vmulph %xmm3, %xmm2, %xmm1");
2535         asm volatile("vmulph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2536         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2537         asm volatile("vmulph %ymm3, %ymm2, %ymm1");
2538         asm volatile("vmulph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2539         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2540         asm volatile("vmulsh %xmm3, %xmm2, %xmm1");
2541         asm volatile("vmulsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2542         asm volatile("vmulsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2543         asm volatile("vrcpph %zmm2, %zmm1");
2544         asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %zmm1");
2545         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %zmm1");
2546         asm volatile("vrcpph %xmm2, %xmm1");
2547         asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %xmm1");
2548         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %xmm1");
2549         asm volatile("vrcpph %ymm2, %ymm1");
2550         asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %ymm1");
2551         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %ymm1");
2552         asm volatile("vrcpsh %xmm3, %xmm2, %xmm1");
2553         asm volatile("vrcpsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2554         asm volatile("vrcpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2555         asm volatile("vreduceph $0x12, %zmm2, %zmm1");
2556         asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");
2557         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
2558         asm volatile("vreduceph $0x12, %xmm2, %xmm1");
2559         asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");
2560         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
2561         asm volatile("vreduceph $0x12, %ymm2, %ymm1");
2562         asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");
2563         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
2564         asm volatile("vreducesh $0x12, %xmm3, %xmm2, %xmm1");
2565         asm volatile("vreducesh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2566         asm volatile("vreducesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2567         asm volatile("vrndscaleph $0x12, %zmm2, %zmm1");
2568         asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");
2569         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
2570         asm volatile("vrndscaleph $0x12, %xmm2, %xmm1");
2571         asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");
2572         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
2573         asm volatile("vrndscaleph $0x12, %ymm2, %ymm1");
2574         asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");
2575         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
2576         asm volatile("vrndscalesh $0x12, %xmm3, %xmm2, %xmm1");
2577         asm volatile("vrndscalesh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2578         asm volatile("vrndscalesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2579         asm volatile("vrsqrtph %zmm2, %zmm1");
2580         asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %zmm1");
2581         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
2582         asm volatile("vrsqrtph %xmm2, %xmm1");
2583         asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %xmm1");
2584         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
2585         asm volatile("vrsqrtph %ymm2, %ymm1");
2586         asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %ymm1");
2587         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
2588         asm volatile("vrsqrtsh %xmm3, %xmm2, %xmm1");
2589         asm volatile("vrsqrtsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2590         asm volatile("vrsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2591         asm volatile("vscalefph %zmm3, %zmm2, %zmm1");
2592         asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2593         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2594         asm volatile("vscalefph %xmm3, %xmm2, %xmm1");
2595         asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2596         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2597         asm volatile("vscalefph %ymm3, %ymm2, %ymm1");
2598         asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2599         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2600         asm volatile("vscalefsh %xmm3, %xmm2, %xmm1");
2601         asm volatile("vscalefsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2602         asm volatile("vscalefsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2603         asm volatile("vsqrtph %zmm2, %zmm1");
2604         asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %zmm1");
2605         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
2606         asm volatile("vsqrtph %xmm2, %xmm1");
2607         asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %xmm1");
2608         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
2609         asm volatile("vsqrtph %ymm2, %ymm1");
2610         asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %ymm1");
2611         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
2612         asm volatile("vsqrtsh %xmm3, %xmm2, %xmm1");
2613         asm volatile("vsqrtsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2614         asm volatile("vsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2615         asm volatile("vsubph %zmm3, %zmm2, %zmm1");
2616         asm volatile("vsubph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2617         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2618         asm volatile("vsubph %xmm3, %xmm2, %xmm1");
2619         asm volatile("vsubph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2620         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2621         asm volatile("vsubph %ymm3, %ymm2, %ymm1");
2622         asm volatile("vsubph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2623         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2624         asm volatile("vsubsh %xmm3, %xmm2, %xmm1");
2625         asm volatile("vsubsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2626         asm volatile("vsubsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2627         asm volatile("vucomish %xmm2, %xmm1");
2628         asm volatile("vucomish 0x12345678(%rax,%rcx,8), %xmm1");
2629         asm volatile("vucomish 0x12345678(%eax,%ecx,8), %xmm1");
2630
2631 #else  /* #ifdef __x86_64__ */
2632
2633         /* bound r32, mem (same op code as EVEX prefix) */
2634
2635         asm volatile("bound %eax, 0x12345678(%ecx)");
2636         asm volatile("bound %ecx, 0x12345678(%eax)");
2637         asm volatile("bound %edx, 0x12345678(%eax)");
2638         asm volatile("bound %ebx, 0x12345678(%eax)");
2639         asm volatile("bound %esp, 0x12345678(%eax)");
2640         asm volatile("bound %ebp, 0x12345678(%eax)");
2641         asm volatile("bound %esi, 0x12345678(%eax)");
2642         asm volatile("bound %edi, 0x12345678(%eax)");
2643         asm volatile("bound %ecx, (%eax)");
2644         asm volatile("bound %eax, (0x12345678)");
2645         asm volatile("bound %edx, (%ecx,%eax,1)");
2646         asm volatile("bound %edx, 0x12345678(,%eax,1)");
2647         asm volatile("bound %edx, (%eax,%ecx,1)");
2648         asm volatile("bound %edx, (%eax,%ecx,8)");
2649         asm volatile("bound %edx, 0x12(%eax)");
2650         asm volatile("bound %edx, 0x12(%ebp)");
2651         asm volatile("bound %edx, 0x12(%ecx,%eax,1)");
2652         asm volatile("bound %edx, 0x12(%ebp,%eax,1)");
2653         asm volatile("bound %edx, 0x12(%eax,%ecx,1)");
2654         asm volatile("bound %edx, 0x12(%eax,%ecx,8)");
2655         asm volatile("bound %edx, 0x12345678(%eax)");
2656         asm volatile("bound %edx, 0x12345678(%ebp)");
2657         asm volatile("bound %edx, 0x12345678(%ecx,%eax,1)");
2658         asm volatile("bound %edx, 0x12345678(%ebp,%eax,1)");
2659         asm volatile("bound %edx, 0x12345678(%eax,%ecx,1)");
2660         asm volatile("bound %edx, 0x12345678(%eax,%ecx,8)");
2661
2662         /* bound r16, mem (same op code as EVEX prefix) */
2663
2664         asm volatile("bound %ax, 0x12345678(%ecx)");
2665         asm volatile("bound %cx, 0x12345678(%eax)");
2666         asm volatile("bound %dx, 0x12345678(%eax)");
2667         asm volatile("bound %bx, 0x12345678(%eax)");
2668         asm volatile("bound %sp, 0x12345678(%eax)");
2669         asm volatile("bound %bp, 0x12345678(%eax)");
2670         asm volatile("bound %si, 0x12345678(%eax)");
2671         asm volatile("bound %di, 0x12345678(%eax)");
2672         asm volatile("bound %cx, (%eax)");
2673         asm volatile("bound %ax, (0x12345678)");
2674         asm volatile("bound %dx, (%ecx,%eax,1)");
2675         asm volatile("bound %dx, 0x12345678(,%eax,1)");
2676         asm volatile("bound %dx, (%eax,%ecx,1)");
2677         asm volatile("bound %dx, (%eax,%ecx,8)");
2678         asm volatile("bound %dx, 0x12(%eax)");
2679         asm volatile("bound %dx, 0x12(%ebp)");
2680         asm volatile("bound %dx, 0x12(%ecx,%eax,1)");
2681         asm volatile("bound %dx, 0x12(%ebp,%eax,1)");
2682         asm volatile("bound %dx, 0x12(%eax,%ecx,1)");
2683         asm volatile("bound %dx, 0x12(%eax,%ecx,8)");
2684         asm volatile("bound %dx, 0x12345678(%eax)");
2685         asm volatile("bound %dx, 0x12345678(%ebp)");
2686         asm volatile("bound %dx, 0x12345678(%ecx,%eax,1)");
2687         asm volatile("bound %dx, 0x12345678(%ebp,%eax,1)");
2688         asm volatile("bound %dx, 0x12345678(%eax,%ecx,1)");
2689         asm volatile("bound %dx, 0x12345678(%eax,%ecx,8)");
2690
2691         /* AVX-512: Instructions with the same op codes as Mask Instructions  */
2692
2693         asm volatile("cmovno %eax,%ebx");
2694         asm volatile("cmovno 0x12345678(%eax),%ecx");
2695         asm volatile("cmovno 0x12345678(%eax),%cx");
2696
2697         asm volatile("cmove  %eax,%ebx");
2698         asm volatile("cmove 0x12345678(%eax),%ecx");
2699         asm volatile("cmove 0x12345678(%eax),%cx");
2700
2701         asm volatile("seto    0x12345678(%eax)");
2702         asm volatile("setno   0x12345678(%eax)");
2703         asm volatile("setb    0x12345678(%eax)");
2704         asm volatile("setc    0x12345678(%eax)");
2705         asm volatile("setnae  0x12345678(%eax)");
2706         asm volatile("setae   0x12345678(%eax)");
2707         asm volatile("setnb   0x12345678(%eax)");
2708         asm volatile("setnc   0x12345678(%eax)");
2709         asm volatile("sets    0x12345678(%eax)");
2710         asm volatile("setns   0x12345678(%eax)");
2711
2712         /* AVX-512: Mask Instructions */
2713
2714         asm volatile("kandw  %k7,%k6,%k5");
2715         asm volatile("kandq  %k7,%k6,%k5");
2716         asm volatile("kandb  %k7,%k6,%k5");
2717         asm volatile("kandd  %k7,%k6,%k5");
2718
2719         asm volatile("kandnw  %k7,%k6,%k5");
2720         asm volatile("kandnq  %k7,%k6,%k5");
2721         asm volatile("kandnb  %k7,%k6,%k5");
2722         asm volatile("kandnd  %k7,%k6,%k5");
2723
2724         asm volatile("knotw  %k7,%k6");
2725         asm volatile("knotq  %k7,%k6");
2726         asm volatile("knotb  %k7,%k6");
2727         asm volatile("knotd  %k7,%k6");
2728
2729         asm volatile("korw  %k7,%k6,%k5");
2730         asm volatile("korq  %k7,%k6,%k5");
2731         asm volatile("korb  %k7,%k6,%k5");
2732         asm volatile("kord  %k7,%k6,%k5");
2733
2734         asm volatile("kxnorw  %k7,%k6,%k5");
2735         asm volatile("kxnorq  %k7,%k6,%k5");
2736         asm volatile("kxnorb  %k7,%k6,%k5");
2737         asm volatile("kxnord  %k7,%k6,%k5");
2738
2739         asm volatile("kxorw  %k7,%k6,%k5");
2740         asm volatile("kxorq  %k7,%k6,%k5");
2741         asm volatile("kxorb  %k7,%k6,%k5");
2742         asm volatile("kxord  %k7,%k6,%k5");
2743
2744         asm volatile("kaddw  %k7,%k6,%k5");
2745         asm volatile("kaddq  %k7,%k6,%k5");
2746         asm volatile("kaddb  %k7,%k6,%k5");
2747         asm volatile("kaddd  %k7,%k6,%k5");
2748
2749         asm volatile("kunpckbw %k7,%k6,%k5");
2750         asm volatile("kunpckwd %k7,%k6,%k5");
2751         asm volatile("kunpckdq %k7,%k6,%k5");
2752
2753         asm volatile("kmovw  %k6,%k5");
2754         asm volatile("kmovw  (%ecx),%k5");
2755         asm volatile("kmovw  0x123(%eax,%ecx,8),%k5");
2756         asm volatile("kmovw  %k5,(%ecx)");
2757         asm volatile("kmovw  %k5,0x123(%eax,%ecx,8)");
2758         asm volatile("kmovw  %eax,%k5");
2759         asm volatile("kmovw  %ebp,%k5");
2760         asm volatile("kmovw  %k5,%eax");
2761         asm volatile("kmovw  %k5,%ebp");
2762
2763         asm volatile("kmovq  %k6,%k5");
2764         asm volatile("kmovq  (%ecx),%k5");
2765         asm volatile("kmovq  0x123(%eax,%ecx,8),%k5");
2766         asm volatile("kmovq  %k5,(%ecx)");
2767         asm volatile("kmovq  %k5,0x123(%eax,%ecx,8)");
2768
2769         asm volatile("kmovb  %k6,%k5");
2770         asm volatile("kmovb  (%ecx),%k5");
2771         asm volatile("kmovb  0x123(%eax,%ecx,8),%k5");
2772         asm volatile("kmovb  %k5,(%ecx)");
2773         asm volatile("kmovb  %k5,0x123(%eax,%ecx,8)");
2774         asm volatile("kmovb  %eax,%k5");
2775         asm volatile("kmovb  %ebp,%k5");
2776         asm volatile("kmovb  %k5,%eax");
2777         asm volatile("kmovb  %k5,%ebp");
2778
2779         asm volatile("kmovd  %k6,%k5");
2780         asm volatile("kmovd  (%ecx),%k5");
2781         asm volatile("kmovd  0x123(%eax,%ecx,8),%k5");
2782         asm volatile("kmovd  %k5,(%ecx)");
2783         asm volatile("kmovd  %k5,0x123(%eax,%ecx,8)");
2784         asm volatile("kmovd  %eax,%k5");
2785         asm volatile("kmovd  %ebp,%k5");
2786         asm volatile("kmovd  %k5,%eax");
2787         asm volatile("kmovd  %k5,%ebp");
2788
2789         asm volatile("kortestw %k6,%k5");
2790         asm volatile("kortestq %k6,%k5");
2791         asm volatile("kortestb %k6,%k5");
2792         asm volatile("kortestd %k6,%k5");
2793
2794         asm volatile("ktestw %k6,%k5");
2795         asm volatile("ktestq %k6,%k5");
2796         asm volatile("ktestb %k6,%k5");
2797         asm volatile("ktestd %k6,%k5");
2798
2799         asm volatile("kshiftrw $0x12,%k6,%k5");
2800         asm volatile("kshiftrq $0x5b,%k6,%k5");
2801         asm volatile("kshiftlw $0x12,%k6,%k5");
2802         asm volatile("kshiftlq $0x5b,%k6,%k5");
2803
2804         /* AVX-512: Op code 0f 5b */
2805         asm volatile("vcvtdq2ps %xmm5,%xmm6");
2806         asm volatile("vcvtqq2ps %zmm5,%ymm6{%k7}");
2807         asm volatile("vcvtps2dq %xmm5,%xmm6");
2808         asm volatile("vcvttps2dq %xmm5,%xmm6");
2809
2810         /* AVX-512: Op code 0f 6f */
2811
2812         asm volatile("movq   %mm0,%mm4");
2813         asm volatile("vmovdqa %ymm4,%ymm6");
2814         asm volatile("vmovdqa32 %zmm5,%zmm6");
2815         asm volatile("vmovdqa64 %zmm5,%zmm6");
2816         asm volatile("vmovdqu %ymm4,%ymm6");
2817         asm volatile("vmovdqu32 %zmm5,%zmm6");
2818         asm volatile("vmovdqu64 %zmm5,%zmm6");
2819         asm volatile("vmovdqu8 %zmm5,%zmm6");
2820         asm volatile("vmovdqu16 %zmm5,%zmm6");
2821
2822         /* AVX-512: Op code 0f 78 */
2823
2824         asm volatile("vmread %eax,%ebx");
2825         asm volatile("vcvttps2udq %zmm5,%zmm6");
2826         asm volatile("vcvttpd2udq %zmm5,%ymm6{%k7}");
2827         asm volatile("vcvttsd2usi %xmm6,%eax");
2828         asm volatile("vcvttss2usi %xmm6,%eax");
2829         asm volatile("vcvttps2uqq %ymm5,%zmm6{%k7}");
2830         asm volatile("vcvttpd2uqq %zmm5,%zmm6");
2831
2832         /* AVX-512: Op code 0f 79 */
2833
2834         asm volatile("vmwrite %eax,%ebx");
2835         asm volatile("vcvtps2udq %zmm5,%zmm6");
2836         asm volatile("vcvtpd2udq %zmm5,%ymm6{%k7}");
2837         asm volatile("vcvtsd2usi %xmm6,%eax");
2838         asm volatile("vcvtss2usi %xmm6,%eax");
2839         asm volatile("vcvtps2uqq %ymm5,%zmm6{%k7}");
2840         asm volatile("vcvtpd2uqq %zmm5,%zmm6");
2841
2842         /* AVX-512: Op code 0f 7a */
2843
2844         asm volatile("vcvtudq2pd %ymm5,%zmm6{%k7}");
2845         asm volatile("vcvtuqq2pd %zmm5,%zmm6");
2846         asm volatile("vcvtudq2ps %zmm5,%zmm6");
2847         asm volatile("vcvtuqq2ps %zmm5,%ymm6{%k7}");
2848         asm volatile("vcvttps2qq %ymm5,%zmm6{%k7}");
2849         asm volatile("vcvttpd2qq %zmm5,%zmm6");
2850
2851         /* AVX-512: Op code 0f 7b */
2852
2853         asm volatile("vcvtusi2sd %eax,%xmm5,%xmm6");
2854         asm volatile("vcvtusi2ss %eax,%xmm5,%xmm6");
2855         asm volatile("vcvtps2qq %ymm5,%zmm6{%k7}");
2856         asm volatile("vcvtpd2qq %zmm5,%zmm6");
2857
2858         /* AVX-512: Op code 0f 7f */
2859
2860         asm volatile("movq.s  %mm0,%mm4");
2861         asm volatile("vmovdqa.s %ymm5,%ymm6");
2862         asm volatile("vmovdqa32.s %zmm5,%zmm6");
2863         asm volatile("vmovdqa64.s %zmm5,%zmm6");
2864         asm volatile("vmovdqu.s %ymm5,%ymm6");
2865         asm volatile("vmovdqu32.s %zmm5,%zmm6");
2866         asm volatile("vmovdqu64.s %zmm5,%zmm6");
2867         asm volatile("vmovdqu8.s %zmm5,%zmm6");
2868         asm volatile("vmovdqu16.s %zmm5,%zmm6");
2869
2870         /* AVX-512: Op code 0f db */
2871
2872         asm volatile("pand  %mm1,%mm2");
2873         asm volatile("pand  %xmm1,%xmm2");
2874         asm volatile("vpand  %ymm4,%ymm6,%ymm2");
2875         asm volatile("vpandd %zmm4,%zmm5,%zmm6");
2876         asm volatile("vpandq %zmm4,%zmm5,%zmm6");
2877
2878         /* AVX-512: Op code 0f df */
2879
2880         asm volatile("pandn  %mm1,%mm2");
2881         asm volatile("pandn  %xmm1,%xmm2");
2882         asm volatile("vpandn %ymm4,%ymm6,%ymm2");
2883         asm volatile("vpandnd %zmm4,%zmm5,%zmm6");
2884         asm volatile("vpandnq %zmm4,%zmm5,%zmm6");
2885
2886         /* AVX-512: Op code 0f e6 */
2887
2888         asm volatile("vcvttpd2dq %xmm1,%xmm2");
2889         asm volatile("vcvtdq2pd %xmm5,%xmm6");
2890         asm volatile("vcvtdq2pd %ymm5,%zmm6{%k7}");
2891         asm volatile("vcvtqq2pd %zmm5,%zmm6");
2892         asm volatile("vcvtpd2dq %xmm1,%xmm2");
2893
2894         /* AVX-512: Op code 0f eb */
2895
2896         asm volatile("por   %mm4,%mm6");
2897         asm volatile("vpor   %ymm4,%ymm6,%ymm2");
2898         asm volatile("vpord  %zmm4,%zmm5,%zmm6");
2899         asm volatile("vporq  %zmm4,%zmm5,%zmm6");
2900
2901         /* AVX-512: Op code 0f ef */
2902
2903         asm volatile("pxor   %mm4,%mm6");
2904         asm volatile("vpxor  %ymm4,%ymm6,%ymm2");
2905         asm volatile("vpxord %zmm4,%zmm5,%zmm6");
2906         asm volatile("vpxorq %zmm4,%zmm5,%zmm6");
2907
2908         /* AVX-512: Op code 0f 38 10 */
2909
2910         asm volatile("pblendvb %xmm1,%xmm0");
2911         asm volatile("vpsrlvw %zmm4,%zmm5,%zmm6");
2912         asm volatile("vpmovuswb %zmm5,%ymm6{%k7}");
2913
2914         /* AVX-512: Op code 0f 38 11 */
2915
2916         asm volatile("vpmovusdb %zmm5,%xmm6{%k7}");
2917         asm volatile("vpsravw %zmm4,%zmm5,%zmm6");
2918
2919         /* AVX-512: Op code 0f 38 12 */
2920
2921         asm volatile("vpmovusqb %zmm5,%xmm6{%k7}");
2922         asm volatile("vpsllvw %zmm4,%zmm5,%zmm6");
2923
2924         /* AVX-512: Op code 0f 38 13 */
2925
2926         asm volatile("vcvtph2ps %xmm3,%ymm5");
2927         asm volatile("vcvtph2ps %ymm5,%zmm6{%k7}");
2928         asm volatile("vpmovusdw %zmm5,%ymm6{%k7}");
2929
2930         /* AVX-512: Op code 0f 38 14 */
2931
2932         asm volatile("blendvps %xmm1,%xmm0");
2933         asm volatile("vpmovusqw %zmm5,%xmm6{%k7}");
2934         asm volatile("vprorvd %zmm4,%zmm5,%zmm6");
2935         asm volatile("vprorvq %zmm4,%zmm5,%zmm6");
2936
2937         /* AVX-512: Op code 0f 38 15 */
2938
2939         asm volatile("blendvpd %xmm1,%xmm0");
2940         asm volatile("vpmovusqd %zmm5,%ymm6{%k7}");
2941         asm volatile("vprolvd %zmm4,%zmm5,%zmm6");
2942         asm volatile("vprolvq %zmm4,%zmm5,%zmm6");
2943
2944         /* AVX-512: Op code 0f 38 16 */
2945
2946         asm volatile("vpermps %ymm4,%ymm6,%ymm2");
2947         asm volatile("vpermps %ymm4,%ymm6,%ymm2{%k7}");
2948         asm volatile("vpermpd %ymm4,%ymm6,%ymm2{%k7}");
2949
2950         /* AVX-512: Op code 0f 38 19 */
2951
2952         asm volatile("vbroadcastsd %xmm4,%ymm6");
2953         asm volatile("vbroadcastf32x2 %xmm7,%zmm6");
2954
2955         /* AVX-512: Op code 0f 38 1a */
2956
2957         asm volatile("vbroadcastf128 (%ecx),%ymm4");
2958         asm volatile("vbroadcastf32x4 (%ecx),%zmm6");
2959         asm volatile("vbroadcastf64x2 (%ecx),%zmm6");
2960
2961         /* AVX-512: Op code 0f 38 1b */
2962
2963         asm volatile("vbroadcastf32x8 (%ecx),%zmm6");
2964         asm volatile("vbroadcastf64x4 (%ecx),%zmm6");
2965
2966         /* AVX-512: Op code 0f 38 1f */
2967
2968         asm volatile("vpabsq %zmm4,%zmm6");
2969
2970         /* AVX-512: Op code 0f 38 20 */
2971
2972         asm volatile("vpmovsxbw %xmm4,%xmm5");
2973         asm volatile("vpmovswb %zmm5,%ymm6{%k7}");
2974
2975         /* AVX-512: Op code 0f 38 21 */
2976
2977         asm volatile("vpmovsxbd %xmm4,%ymm6");
2978         asm volatile("vpmovsdb %zmm5,%xmm6{%k7}");
2979
2980         /* AVX-512: Op code 0f 38 22 */
2981
2982         asm volatile("vpmovsxbq %xmm4,%ymm4");
2983         asm volatile("vpmovsqb %zmm5,%xmm6{%k7}");
2984
2985         /* AVX-512: Op code 0f 38 23 */
2986
2987         asm volatile("vpmovsxwd %xmm4,%ymm4");
2988         asm volatile("vpmovsdw %zmm5,%ymm6{%k7}");
2989
2990         /* AVX-512: Op code 0f 38 24 */
2991
2992         asm volatile("vpmovsxwq %xmm4,%ymm6");
2993         asm volatile("vpmovsqw %zmm5,%xmm6{%k7}");
2994
2995         /* AVX-512: Op code 0f 38 25 */
2996
2997         asm volatile("vpmovsxdq %xmm4,%ymm4");
2998         asm volatile("vpmovsqd %zmm5,%ymm6{%k7}");
2999
3000         /* AVX-512: Op code 0f 38 26 */
3001
3002         asm volatile("vptestmb %zmm5,%zmm6,%k5");
3003         asm volatile("vptestmw %zmm5,%zmm6,%k5");
3004         asm volatile("vptestnmb %zmm4,%zmm5,%k5");
3005         asm volatile("vptestnmw %zmm4,%zmm5,%k5");
3006
3007         /* AVX-512: Op code 0f 38 27 */
3008
3009         asm volatile("vptestmd %zmm5,%zmm6,%k5");
3010         asm volatile("vptestmq %zmm5,%zmm6,%k5");
3011         asm volatile("vptestnmd %zmm4,%zmm5,%k5");
3012         asm volatile("vptestnmq %zmm4,%zmm5,%k5");
3013
3014         /* AVX-512: Op code 0f 38 28 */
3015
3016         asm volatile("vpmuldq %ymm4,%ymm6,%ymm2");
3017         asm volatile("vpmovm2b %k5,%zmm6");
3018         asm volatile("vpmovm2w %k5,%zmm6");
3019
3020         /* AVX-512: Op code 0f 38 29 */
3021
3022         asm volatile("vpcmpeqq %ymm4,%ymm6,%ymm2");
3023         asm volatile("vpmovb2m %zmm6,%k5");
3024         asm volatile("vpmovw2m %zmm6,%k5");
3025
3026         /* AVX-512: Op code 0f 38 2a */
3027
3028         asm volatile("vmovntdqa (%ecx),%ymm4");
3029         asm volatile("vpbroadcastmb2q %k6,%zmm1");
3030
3031         /* AVX-512: Op code 0f 38 2c */
3032
3033         asm volatile("vmaskmovps (%ecx),%ymm4,%ymm6");
3034         asm volatile("vscalefps %zmm4,%zmm5,%zmm6");
3035         asm volatile("vscalefpd %zmm4,%zmm5,%zmm6");
3036
3037         /* AVX-512: Op code 0f 38 2d */
3038
3039         asm volatile("vmaskmovpd (%ecx),%ymm4,%ymm6");
3040         asm volatile("vscalefss %xmm4,%xmm5,%xmm6{%k7}");
3041         asm volatile("vscalefsd %xmm4,%xmm5,%xmm6{%k7}");
3042
3043         /* AVX-512: Op code 0f 38 30 */
3044
3045         asm volatile("vpmovzxbw %xmm4,%ymm4");
3046         asm volatile("vpmovwb %zmm5,%ymm6{%k7}");
3047
3048         /* AVX-512: Op code 0f 38 31 */
3049
3050         asm volatile("vpmovzxbd %xmm4,%ymm6");
3051         asm volatile("vpmovdb %zmm5,%xmm6{%k7}");
3052
3053         /* AVX-512: Op code 0f 38 32 */
3054
3055         asm volatile("vpmovzxbq %xmm4,%ymm4");
3056         asm volatile("vpmovqb %zmm5,%xmm6{%k7}");
3057
3058         /* AVX-512: Op code 0f 38 33 */
3059
3060         asm volatile("vpmovzxwd %xmm4,%ymm4");
3061         asm volatile("vpmovdw %zmm5,%ymm6{%k7}");
3062
3063         /* AVX-512: Op code 0f 38 34 */
3064
3065         asm volatile("vpmovzxwq %xmm4,%ymm6");
3066         asm volatile("vpmovqw %zmm5,%xmm6{%k7}");
3067
3068         /* AVX-512: Op code 0f 38 35 */
3069
3070         asm volatile("vpmovzxdq %xmm4,%ymm4");
3071         asm volatile("vpmovqd %zmm5,%ymm6{%k7}");
3072
3073         /* AVX-512: Op code 0f 38 36 */
3074
3075         asm volatile("vpermd %ymm4,%ymm6,%ymm2");
3076         asm volatile("vpermd %ymm4,%ymm6,%ymm2{%k7}");
3077         asm volatile("vpermq %ymm4,%ymm6,%ymm2{%k7}");
3078
3079         /* AVX-512: Op code 0f 38 38 */
3080
3081         asm volatile("vpminsb %ymm4,%ymm6,%ymm2");
3082         asm volatile("vpmovm2d %k5,%zmm6");
3083         asm volatile("vpmovm2q %k5,%zmm6");
3084
3085         /* AVX-512: Op code 0f 38 39 */
3086
3087         asm volatile("vpminsd %xmm1,%xmm2,%xmm3");
3088         asm volatile("vpminsd %zmm4,%zmm5,%zmm6");
3089         asm volatile("vpminsq %zmm4,%zmm5,%zmm6");
3090         asm volatile("vpmovd2m %zmm6,%k5");
3091         asm volatile("vpmovq2m %zmm6,%k5");
3092
3093         /* AVX-512: Op code 0f 38 3a */
3094
3095         asm volatile("vpminuw %ymm4,%ymm6,%ymm2");
3096         asm volatile("vpbroadcastmw2d %k6,%zmm6");
3097
3098         /* AVX-512: Op code 0f 38 3b */
3099
3100         asm volatile("vpminud %ymm4,%ymm6,%ymm2");
3101         asm volatile("vpminud %zmm4,%zmm5,%zmm6");
3102         asm volatile("vpminuq %zmm4,%zmm5,%zmm6");
3103
3104         /* AVX-512: Op code 0f 38 3d */
3105
3106         asm volatile("vpmaxsd %ymm4,%ymm6,%ymm2");
3107         asm volatile("vpmaxsd %zmm4,%zmm5,%zmm6");
3108         asm volatile("vpmaxsq %zmm4,%zmm5,%zmm6");
3109
3110         /* AVX-512: Op code 0f 38 3f */
3111
3112         asm volatile("vpmaxud %ymm4,%ymm6,%ymm2");
3113         asm volatile("vpmaxud %zmm4,%zmm5,%zmm6");
3114         asm volatile("vpmaxuq %zmm4,%zmm5,%zmm6");
3115
3116         /* AVX-512: Op code 0f 38 40 */
3117
3118         asm volatile("vpmulld %ymm4,%ymm6,%ymm2");
3119         asm volatile("vpmulld %zmm4,%zmm5,%zmm6");
3120         asm volatile("vpmullq %zmm4,%zmm5,%zmm6");
3121
3122         /* AVX-512: Op code 0f 38 42 */
3123
3124         asm volatile("vgetexpps %zmm5,%zmm6");
3125         asm volatile("vgetexppd %zmm5,%zmm6");
3126
3127         /* AVX-512: Op code 0f 38 43 */
3128
3129         asm volatile("vgetexpss %xmm4,%xmm5,%xmm6{%k7}");
3130         asm volatile("vgetexpsd %xmm2,%xmm3,%xmm4{%k7}");
3131
3132         /* AVX-512: Op code 0f 38 44 */
3133
3134         asm volatile("vplzcntd %zmm5,%zmm6");
3135         asm volatile("vplzcntq %zmm5,%zmm6");
3136
3137         /* AVX-512: Op code 0f 38 46 */
3138
3139         asm volatile("vpsravd %ymm4,%ymm6,%ymm2");
3140         asm volatile("vpsravd %zmm4,%zmm5,%zmm6");
3141         asm volatile("vpsravq %zmm4,%zmm5,%zmm6");
3142
3143         /* AVX-512: Op code 0f 38 4c */
3144
3145         asm volatile("vrcp14ps %zmm5,%zmm6");
3146         asm volatile("vrcp14pd %zmm5,%zmm6");
3147
3148         /* AVX-512: Op code 0f 38 4d */
3149
3150         asm volatile("vrcp14ss %xmm4,%xmm5,%xmm6{%k7}");
3151         asm volatile("vrcp14sd %xmm4,%xmm5,%xmm6{%k7}");
3152
3153         /* AVX-512: Op code 0f 38 4e */
3154
3155         asm volatile("vrsqrt14ps %zmm5,%zmm6");
3156         asm volatile("vrsqrt14pd %zmm5,%zmm6");
3157
3158         /* AVX-512: Op code 0f 38 4f */
3159
3160         asm volatile("vrsqrt14ss %xmm4,%xmm5,%xmm6{%k7}");
3161         asm volatile("vrsqrt14sd %xmm4,%xmm5,%xmm6{%k7}");
3162
3163         /* AVX-512: Op code 0f 38 50 */
3164
3165         asm volatile("vpdpbusd %xmm1, %xmm2, %xmm3");
3166         asm volatile("vpdpbusd %ymm1, %ymm2, %ymm3");
3167         asm volatile("vpdpbusd %zmm1, %zmm2, %zmm3");
3168         asm volatile("vpdpbusd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3169
3170         /* AVX-512: Op code 0f 38 51 */
3171
3172         asm volatile("vpdpbusds %xmm1, %xmm2, %xmm3");
3173         asm volatile("vpdpbusds %ymm1, %ymm2, %ymm3");
3174         asm volatile("vpdpbusds %zmm1, %zmm2, %zmm3");
3175         asm volatile("vpdpbusds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3176
3177         /* AVX-512: Op code 0f 38 52 */
3178
3179         asm volatile("vdpbf16ps %xmm1, %xmm2, %xmm3");
3180         asm volatile("vdpbf16ps %ymm1, %ymm2, %ymm3");
3181         asm volatile("vdpbf16ps %zmm1, %zmm2, %zmm3");
3182         asm volatile("vdpbf16ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3183
3184         asm volatile("vpdpwssd %xmm1, %xmm2, %xmm3");
3185         asm volatile("vpdpwssd %ymm1, %ymm2, %ymm3");
3186         asm volatile("vpdpwssd %zmm1, %zmm2, %zmm3");
3187         asm volatile("vpdpwssd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3188
3189         asm volatile("vp4dpwssd (%eax), %zmm0, %zmm4");
3190         asm volatile("vp4dpwssd 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
3191
3192         /* AVX-512: Op code 0f 38 53 */
3193
3194         asm volatile("vpdpwssds %xmm1, %xmm2, %xmm3");
3195         asm volatile("vpdpwssds %ymm1, %ymm2, %ymm3");
3196         asm volatile("vpdpwssds %zmm1, %zmm2, %zmm3");
3197         asm volatile("vpdpwssds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3198
3199         asm volatile("vp4dpwssds (%eax), %zmm0, %zmm4");
3200         asm volatile("vp4dpwssds 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
3201
3202         /* AVX-512: Op code 0f 38 54 */
3203
3204         asm volatile("vpopcntb %xmm1, %xmm2");
3205         asm volatile("vpopcntb %ymm1, %ymm2");
3206         asm volatile("vpopcntb %zmm1, %zmm2");
3207         asm volatile("vpopcntb 0x12345678(%eax,%ecx,8),%zmm2");
3208
3209         asm volatile("vpopcntw %xmm1, %xmm2");
3210         asm volatile("vpopcntw %ymm1, %ymm2");
3211         asm volatile("vpopcntw %zmm1, %zmm2");
3212         asm volatile("vpopcntw 0x12345678(%eax,%ecx,8),%zmm2");
3213
3214         /* AVX-512: Op code 0f 38 55 */
3215
3216         asm volatile("vpopcntd %xmm1, %xmm2");
3217         asm volatile("vpopcntd %ymm1, %ymm2");
3218         asm volatile("vpopcntd %zmm1, %zmm2");
3219         asm volatile("vpopcntd 0x12345678(%eax,%ecx,8),%zmm2");
3220
3221         asm volatile("vpopcntq %xmm1, %xmm2");
3222         asm volatile("vpopcntq %ymm1, %ymm2");
3223         asm volatile("vpopcntq %zmm1, %zmm2");
3224         asm volatile("vpopcntq 0x12345678(%eax,%ecx,8),%zmm2");
3225
3226         /* AVX-512: Op code 0f 38 59 */
3227
3228         asm volatile("vpbroadcastq %xmm4,%xmm6");
3229         asm volatile("vbroadcasti32x2 %xmm7,%zmm6");
3230
3231         /* AVX-512: Op code 0f 38 5a */
3232
3233         asm volatile("vbroadcasti128 (%ecx),%ymm4");
3234         asm volatile("vbroadcasti32x4 (%ecx),%zmm6");
3235         asm volatile("vbroadcasti64x2 (%ecx),%zmm6");
3236
3237         /* AVX-512: Op code 0f 38 5b */
3238
3239         asm volatile("vbroadcasti32x8 (%ecx),%zmm6");
3240         asm volatile("vbroadcasti64x4 (%ecx),%zmm6");
3241
3242         /* AVX-512: Op code 0f 38 62 */
3243
3244         asm volatile("vpexpandb %xmm1, %xmm2");
3245         asm volatile("vpexpandb %ymm1, %ymm2");
3246         asm volatile("vpexpandb %zmm1, %zmm2");
3247         asm volatile("vpexpandb 0x12345678(%eax,%ecx,8),%zmm2");
3248
3249         asm volatile("vpexpandw %xmm1, %xmm2");
3250         asm volatile("vpexpandw %ymm1, %ymm2");
3251         asm volatile("vpexpandw %zmm1, %zmm2");
3252         asm volatile("vpexpandw 0x12345678(%eax,%ecx,8),%zmm2");
3253
3254         /* AVX-512: Op code 0f 38 63 */
3255
3256         asm volatile("vpcompressb %xmm1, %xmm2");
3257         asm volatile("vpcompressb %ymm1, %ymm2");
3258         asm volatile("vpcompressb %zmm1, %zmm2");
3259         asm volatile("vpcompressb %zmm2,0x12345678(%eax,%ecx,8)");
3260
3261         asm volatile("vpcompressw %xmm1, %xmm2");
3262         asm volatile("vpcompressw %ymm1, %ymm2");
3263         asm volatile("vpcompressw %zmm1, %zmm2");
3264         asm volatile("vpcompressw %zmm2,0x12345678(%eax,%ecx,8)");
3265
3266         /* AVX-512: Op code 0f 38 64 */
3267
3268         asm volatile("vpblendmd %zmm4,%zmm5,%zmm6");
3269         asm volatile("vpblendmq %zmm4,%zmm5,%zmm6");
3270
3271         /* AVX-512: Op code 0f 38 65 */
3272
3273         asm volatile("vblendmps %zmm4,%zmm5,%zmm6");
3274         asm volatile("vblendmpd %zmm4,%zmm5,%zmm6");
3275
3276         /* AVX-512: Op code 0f 38 66 */
3277
3278         asm volatile("vpblendmb %zmm4,%zmm5,%zmm6");
3279         asm volatile("vpblendmw %zmm4,%zmm5,%zmm6");
3280
3281         /* AVX-512: Op code 0f 38 68 */
3282
3283         asm volatile("vp2intersectd %xmm1, %xmm2, %k3");
3284         asm volatile("vp2intersectd %ymm1, %ymm2, %k3");
3285         asm volatile("vp2intersectd %zmm1, %zmm2, %k3");
3286         asm volatile("vp2intersectd 0x12345678(%eax,%ecx,8),%zmm2,%k3");
3287
3288         asm volatile("vp2intersectq %xmm1, %xmm2, %k3");
3289         asm volatile("vp2intersectq %ymm1, %ymm2, %k3");
3290         asm volatile("vp2intersectq %zmm1, %zmm2, %k3");
3291         asm volatile("vp2intersectq 0x12345678(%eax,%ecx,8),%zmm2,%k3");
3292
3293         /* AVX-512: Op code 0f 38 70 */
3294
3295         asm volatile("vpshldvw %xmm1, %xmm2, %xmm3");
3296         asm volatile("vpshldvw %ymm1, %ymm2, %ymm3");
3297         asm volatile("vpshldvw %zmm1, %zmm2, %zmm3");
3298         asm volatile("vpshldvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3299
3300         /* AVX-512: Op code 0f 38 71 */
3301
3302         asm volatile("vpshldvd %xmm1, %xmm2, %xmm3");
3303         asm volatile("vpshldvd %ymm1, %ymm2, %ymm3");
3304         asm volatile("vpshldvd %zmm1, %zmm2, %zmm3");
3305         asm volatile("vpshldvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3306
3307         asm volatile("vpshldvq %xmm1, %xmm2, %xmm3");
3308         asm volatile("vpshldvq %ymm1, %ymm2, %ymm3");
3309         asm volatile("vpshldvq %zmm1, %zmm2, %zmm3");
3310         asm volatile("vpshldvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3311
3312         /* AVX-512: Op code 0f 38 72 */
3313
3314         asm volatile("vcvtne2ps2bf16 %xmm1, %xmm2, %xmm3");
3315         asm volatile("vcvtne2ps2bf16 %ymm1, %ymm2, %ymm3");
3316         asm volatile("vcvtne2ps2bf16 %zmm1, %zmm2, %zmm3");
3317         asm volatile("vcvtne2ps2bf16 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3318
3319         asm volatile("vcvtneps2bf16 %xmm1, %xmm2");
3320         asm volatile("vcvtneps2bf16 %ymm1, %xmm2");
3321         asm volatile("vcvtneps2bf16 %zmm1, %ymm2");
3322         asm volatile("vcvtneps2bf16 0x12345678(%eax,%ecx,8),%ymm2");
3323
3324         asm volatile("vpshrdvw %xmm1, %xmm2, %xmm3");
3325         asm volatile("vpshrdvw %ymm1, %ymm2, %ymm3");
3326         asm volatile("vpshrdvw %zmm1, %zmm2, %zmm3");
3327         asm volatile("vpshrdvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3328
3329         /* AVX-512: Op code 0f 38 73 */
3330
3331         asm volatile("vpshrdvd %xmm1, %xmm2, %xmm3");
3332         asm volatile("vpshrdvd %ymm1, %ymm2, %ymm3");
3333         asm volatile("vpshrdvd %zmm1, %zmm2, %zmm3");
3334         asm volatile("vpshrdvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3335
3336         asm volatile("vpshrdvq %xmm1, %xmm2, %xmm3");
3337         asm volatile("vpshrdvq %ymm1, %ymm2, %ymm3");
3338         asm volatile("vpshrdvq %zmm1, %zmm2, %zmm3");
3339         asm volatile("vpshrdvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3340
3341         /* AVX-512: Op code 0f 38 75 */
3342
3343         asm volatile("vpermi2b %zmm4,%zmm5,%zmm6");
3344         asm volatile("vpermi2w %zmm4,%zmm5,%zmm6");
3345
3346         /* AVX-512: Op code 0f 38 76 */
3347
3348         asm volatile("vpermi2d %zmm4,%zmm5,%zmm6");
3349         asm volatile("vpermi2q %zmm4,%zmm5,%zmm6");
3350
3351         /* AVX-512: Op code 0f 38 77 */
3352
3353         asm volatile("vpermi2ps %zmm4,%zmm5,%zmm6");
3354         asm volatile("vpermi2pd %zmm4,%zmm5,%zmm6");
3355
3356         /* AVX-512: Op code 0f 38 7a */
3357
3358         asm volatile("vpbroadcastb %eax,%xmm3");
3359
3360         /* AVX-512: Op code 0f 38 7b */
3361
3362         asm volatile("vpbroadcastw %eax,%xmm3");
3363
3364         /* AVX-512: Op code 0f 38 7c */
3365
3366         asm volatile("vpbroadcastd %eax,%xmm3");
3367
3368         /* AVX-512: Op code 0f 38 7d */
3369
3370         asm volatile("vpermt2b %zmm4,%zmm5,%zmm6");
3371         asm volatile("vpermt2w %zmm4,%zmm5,%zmm6");
3372
3373         /* AVX-512: Op code 0f 38 7e */
3374
3375         asm volatile("vpermt2d %zmm4,%zmm5,%zmm6");
3376         asm volatile("vpermt2q %zmm4,%zmm5,%zmm6");
3377
3378         /* AVX-512: Op code 0f 38 7f */
3379
3380         asm volatile("vpermt2ps %zmm4,%zmm5,%zmm6");
3381         asm volatile("vpermt2pd %zmm4,%zmm5,%zmm6");
3382
3383         /* AVX-512: Op code 0f 38 83 */
3384
3385         asm volatile("vpmultishiftqb %zmm4,%zmm5,%zmm6");
3386
3387         /* AVX-512: Op code 0f 38 88 */
3388
3389         asm volatile("vexpandps (%ecx),%zmm6");
3390         asm volatile("vexpandpd (%ecx),%zmm6");
3391
3392         /* AVX-512: Op code 0f 38 89 */
3393
3394         asm volatile("vpexpandd (%ecx),%zmm6");
3395         asm volatile("vpexpandq (%ecx),%zmm6");
3396
3397         /* AVX-512: Op code 0f 38 8a */
3398
3399         asm volatile("vcompressps %zmm6,(%ecx)");
3400         asm volatile("vcompresspd %zmm6,(%ecx)");
3401
3402         /* AVX-512: Op code 0f 38 8b */
3403
3404         asm volatile("vpcompressd %zmm6,(%ecx)");
3405         asm volatile("vpcompressq %zmm6,(%ecx)");
3406
3407         /* AVX-512: Op code 0f 38 8d */
3408
3409         asm volatile("vpermb %zmm4,%zmm5,%zmm6");
3410         asm volatile("vpermw %zmm4,%zmm5,%zmm6");
3411
3412         /* AVX-512: Op code 0f 38 8f */
3413
3414         asm volatile("vpshufbitqmb %xmm1, %xmm2, %k3");
3415         asm volatile("vpshufbitqmb %ymm1, %ymm2, %k3");
3416         asm volatile("vpshufbitqmb %zmm1, %zmm2, %k3");
3417         asm volatile("vpshufbitqmb 0x12345678(%eax,%ecx,8),%zmm2,%k3");
3418
3419         /* AVX-512: Op code 0f 38 90 */
3420
3421         asm volatile("vpgatherdd %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
3422         asm volatile("vpgatherdq %xmm2,0x04(%ebp,%xmm7,2),%xmm1");
3423         asm volatile("vpgatherdd 0x7b(%ebp,%zmm7,8),%zmm6{%k1}");
3424         asm volatile("vpgatherdq 0x7b(%ebp,%ymm7,8),%zmm6{%k1}");
3425
3426         /* AVX-512: Op code 0f 38 91 */
3427
3428         asm volatile("vpgatherqd %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
3429         asm volatile("vpgatherqq %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
3430         asm volatile("vpgatherqd 0x7b(%ebp,%zmm7,8),%ymm6{%k1}");
3431         asm volatile("vpgatherqq 0x7b(%ebp,%zmm7,8),%zmm6{%k1}");
3432
3433         /* AVX-512: Op code 0f 38 9a */
3434
3435         asm volatile("vfmsub132ps %xmm1, %xmm2, %xmm3");
3436         asm volatile("vfmsub132ps %ymm1, %ymm2, %ymm3");
3437         asm volatile("vfmsub132ps %zmm1, %zmm2, %zmm3");
3438         asm volatile("vfmsub132ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3439
3440         asm volatile("vfmsub132pd %xmm1, %xmm2, %xmm3");
3441         asm volatile("vfmsub132pd %ymm1, %ymm2, %ymm3");
3442         asm volatile("vfmsub132pd %zmm1, %zmm2, %zmm3");
3443         asm volatile("vfmsub132pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3444
3445         asm volatile("v4fmaddps (%eax), %zmm0, %zmm4");
3446         asm volatile("v4fmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
3447
3448         /* AVX-512: Op code 0f 38 9b */
3449
3450         asm volatile("vfmsub132ss %xmm1, %xmm2, %xmm3");
3451         asm volatile("vfmsub132ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
3452
3453         asm volatile("vfmsub132sd %xmm1, %xmm2, %xmm3");
3454         asm volatile("vfmsub132sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
3455
3456         asm volatile("v4fmaddss (%eax), %xmm0, %xmm4");
3457         asm volatile("v4fmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
3458
3459         /* AVX-512: Op code 0f 38 a0 */
3460
3461         asm volatile("vpscatterdd %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
3462         asm volatile("vpscatterdq %zmm6,0x7b(%ebp,%ymm7,8){%k1}");
3463
3464         /* AVX-512: Op code 0f 38 a1 */
3465
3466         asm volatile("vpscatterqd %ymm6,0x7b(%ebp,%zmm7,8){%k1}");
3467         asm volatile("vpscatterqq %ymm6,0x7b(%ebp,%ymm7,8){%k1}");
3468
3469         /* AVX-512: Op code 0f 38 a2 */
3470
3471         asm volatile("vscatterdps %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
3472         asm volatile("vscatterdpd %zmm6,0x7b(%ebp,%ymm7,8){%k1}");
3473
3474         /* AVX-512: Op code 0f 38 a3 */
3475
3476         asm volatile("vscatterqps %ymm6,0x7b(%ebp,%zmm7,8){%k1}");
3477         asm volatile("vscatterqpd %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
3478
3479         /* AVX-512: Op code 0f 38 aa */
3480
3481         asm volatile("vfmsub213ps %xmm1, %xmm2, %xmm3");
3482         asm volatile("vfmsub213ps %ymm1, %ymm2, %ymm3");
3483         asm volatile("vfmsub213ps %zmm1, %zmm2, %zmm3");
3484         asm volatile("vfmsub213ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3485
3486         asm volatile("vfmsub213pd %xmm1, %xmm2, %xmm3");
3487         asm volatile("vfmsub213pd %ymm1, %ymm2, %ymm3");
3488         asm volatile("vfmsub213pd %zmm1, %zmm2, %zmm3");
3489         asm volatile("vfmsub213pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3490
3491         asm volatile("v4fnmaddps (%eax), %zmm0, %zmm4");
3492         asm volatile("v4fnmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
3493
3494         /* AVX-512: Op code 0f 38 ab */
3495
3496         asm volatile("vfmsub213ss %xmm1, %xmm2, %xmm3");
3497         asm volatile("vfmsub213ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
3498
3499         asm volatile("vfmsub213sd %xmm1, %xmm2, %xmm3");
3500         asm volatile("vfmsub213sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
3501
3502         asm volatile("v4fnmaddss (%eax), %xmm0, %xmm4");
3503         asm volatile("v4fnmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
3504
3505         /* AVX-512: Op code 0f 38 b4 */
3506
3507         asm volatile("vpmadd52luq %zmm4,%zmm5,%zmm6");
3508
3509         /* AVX-512: Op code 0f 38 b5 */
3510
3511         asm volatile("vpmadd52huq %zmm4,%zmm5,%zmm6");
3512
3513         /* AVX-512: Op code 0f 38 c4 */
3514
3515         asm volatile("vpconflictd %zmm5,%zmm6");
3516         asm volatile("vpconflictq %zmm5,%zmm6");
3517
3518         /* AVX-512: Op code 0f 38 c8 */
3519
3520         asm volatile("vexp2ps %zmm6,%zmm7");
3521         asm volatile("vexp2pd %zmm6,%zmm7");
3522
3523         /* AVX-512: Op code 0f 38 ca */
3524
3525         asm volatile("vrcp28ps %zmm6,%zmm7");
3526         asm volatile("vrcp28pd %zmm6,%zmm7");
3527
3528         /* AVX-512: Op code 0f 38 cb */
3529
3530         asm volatile("vrcp28ss %xmm5,%xmm6,%xmm7{%k7}");
3531         asm volatile("vrcp28sd %xmm5,%xmm6,%xmm7{%k7}");
3532
3533         /* AVX-512: Op code 0f 38 cc */
3534
3535         asm volatile("vrsqrt28ps %zmm6,%zmm7");
3536         asm volatile("vrsqrt28pd %zmm6,%zmm7");
3537
3538         /* AVX-512: Op code 0f 38 cd */
3539
3540         asm volatile("vrsqrt28ss %xmm5,%xmm6,%xmm7{%k7}");
3541         asm volatile("vrsqrt28sd %xmm5,%xmm6,%xmm7{%k7}");
3542
3543         /* AVX-512: Op code 0f 38 cf */
3544
3545         asm volatile("gf2p8mulb %xmm1, %xmm3");
3546         asm volatile("gf2p8mulb 0x12345678(%eax,%ecx,8),%xmm3");
3547
3548         asm volatile("vgf2p8mulb %xmm1, %xmm2, %xmm3");
3549         asm volatile("vgf2p8mulb %ymm1, %ymm2, %ymm3");
3550         asm volatile("vgf2p8mulb %zmm1, %zmm2, %zmm3");
3551         asm volatile("vgf2p8mulb 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3552
3553         /* AVX-512: Op code 0f 38 dc */
3554
3555         asm volatile("vaesenc %xmm1, %xmm2, %xmm3");
3556         asm volatile("vaesenc %ymm1, %ymm2, %ymm3");
3557         asm volatile("vaesenc %zmm1, %zmm2, %zmm3");
3558         asm volatile("vaesenc 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3559
3560         /* AVX-512: Op code 0f 38 dd */
3561
3562         asm volatile("vaesenclast %xmm1, %xmm2, %xmm3");
3563         asm volatile("vaesenclast %ymm1, %ymm2, %ymm3");
3564         asm volatile("vaesenclast %zmm1, %zmm2, %zmm3");
3565         asm volatile("vaesenclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3566
3567         /* AVX-512: Op code 0f 38 de */
3568
3569         asm volatile("vaesdec %xmm1, %xmm2, %xmm3");
3570         asm volatile("vaesdec %ymm1, %ymm2, %ymm3");
3571         asm volatile("vaesdec %zmm1, %zmm2, %zmm3");
3572         asm volatile("vaesdec 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3573
3574         /* AVX-512: Op code 0f 38 df */
3575
3576         asm volatile("vaesdeclast %xmm1, %xmm2, %xmm3");
3577         asm volatile("vaesdeclast %ymm1, %ymm2, %ymm3");
3578         asm volatile("vaesdeclast %zmm1, %zmm2, %zmm3");
3579         asm volatile("vaesdeclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3580
3581         /* AVX-512: Op code 0f 3a 03 */
3582
3583         asm volatile("valignd $0x12,%zmm5,%zmm6,%zmm7");
3584         asm volatile("valignq $0x12,%zmm5,%zmm6,%zmm7");
3585
3586         /* AVX-512: Op code 0f 3a 08 */
3587
3588         asm volatile("vroundps $0x5,%ymm6,%ymm2");
3589         asm volatile("vrndscaleps $0x12,%zmm5,%zmm6");
3590
3591         /* AVX-512: Op code 0f 3a 09 */
3592
3593         asm volatile("vroundpd $0x5,%ymm6,%ymm2");
3594         asm volatile("vrndscalepd $0x12,%zmm5,%zmm6");
3595
3596         /* AVX-512: Op code 0f 3a 0a */
3597
3598         asm volatile("vroundss $0x5,%xmm4,%xmm6,%xmm2");
3599         asm volatile("vrndscaless $0x12,%xmm4,%xmm5,%xmm6{%k7}");
3600
3601         /* AVX-512: Op code 0f 3a 0b */
3602
3603         asm volatile("vroundsd $0x5,%xmm4,%xmm6,%xmm2");
3604         asm volatile("vrndscalesd $0x12,%xmm4,%xmm5,%xmm6{%k7}");
3605
3606         /* AVX-512: Op code 0f 3a 18 */
3607
3608         asm volatile("vinsertf128 $0x5,%xmm4,%ymm4,%ymm6");
3609         asm volatile("vinsertf32x4 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
3610         asm volatile("vinsertf64x2 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
3611
3612         /* AVX-512: Op code 0f 3a 19 */
3613
3614         asm volatile("vextractf128 $0x5,%ymm4,%xmm4");
3615         asm volatile("vextractf32x4 $0x12,%zmm5,%xmm6{%k7}");
3616         asm volatile("vextractf64x2 $0x12,%zmm5,%xmm6{%k7}");
3617
3618         /* AVX-512: Op code 0f 3a 1a */
3619
3620         asm volatile("vinsertf32x8 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
3621         asm volatile("vinsertf64x4 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
3622
3623         /* AVX-512: Op code 0f 3a 1b */
3624
3625         asm volatile("vextractf32x8 $0x12,%zmm6,%ymm7{%k7}");
3626         asm volatile("vextractf64x4 $0x12,%zmm6,%ymm7{%k7}");
3627
3628         /* AVX-512: Op code 0f 3a 1e */
3629
3630         asm volatile("vpcmpud $0x12,%zmm6,%zmm7,%k5");
3631         asm volatile("vpcmpuq $0x12,%zmm6,%zmm7,%k5");
3632
3633         /* AVX-512: Op code 0f 3a 1f */
3634
3635         asm volatile("vpcmpd $0x12,%zmm6,%zmm7,%k5");
3636         asm volatile("vpcmpq $0x12,%zmm6,%zmm7,%k5");
3637
3638         /* AVX-512: Op code 0f 3a 23 */
3639
3640         asm volatile("vshuff32x4 $0x12,%zmm5,%zmm6,%zmm7");
3641         asm volatile("vshuff64x2 $0x12,%zmm5,%zmm6,%zmm7");
3642
3643         /* AVX-512: Op code 0f 3a 25 */
3644
3645         asm volatile("vpternlogd $0x12,%zmm5,%zmm6,%zmm7");
3646         asm volatile("vpternlogq $0x12,%zmm5,%zmm6,%zmm7");
3647
3648         /* AVX-512: Op code 0f 3a 26 */
3649
3650         asm volatile("vgetmantps $0x12,%zmm6,%zmm7");
3651         asm volatile("vgetmantpd $0x12,%zmm6,%zmm7");
3652
3653         /* AVX-512: Op code 0f 3a 27 */
3654
3655         asm volatile("vgetmantss $0x12,%xmm5,%xmm6,%xmm7{%k7}");
3656         asm volatile("vgetmantsd $0x12,%xmm5,%xmm6,%xmm7{%k7}");
3657
3658         /* AVX-512: Op code 0f 3a 38 */
3659
3660         asm volatile("vinserti128 $0x5,%xmm4,%ymm4,%ymm6");
3661         asm volatile("vinserti32x4 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
3662         asm volatile("vinserti64x2 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
3663
3664         /* AVX-512: Op code 0f 3a 39 */
3665
3666         asm volatile("vextracti128 $0x5,%ymm4,%xmm6");
3667         asm volatile("vextracti32x4 $0x12,%zmm5,%xmm6{%k7}");
3668         asm volatile("vextracti64x2 $0x12,%zmm5,%xmm6{%k7}");
3669
3670         /* AVX-512: Op code 0f 3a 3a */
3671
3672         asm volatile("vinserti32x8 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
3673         asm volatile("vinserti64x4 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
3674
3675         /* AVX-512: Op code 0f 3a 3b */
3676
3677         asm volatile("vextracti32x8 $0x12,%zmm6,%ymm7{%k7}");
3678         asm volatile("vextracti64x4 $0x12,%zmm6,%ymm7{%k7}");
3679
3680         /* AVX-512: Op code 0f 3a 3e */
3681
3682         asm volatile("vpcmpub $0x12,%zmm6,%zmm7,%k5");
3683         asm volatile("vpcmpuw $0x12,%zmm6,%zmm7,%k5");
3684
3685         /* AVX-512: Op code 0f 3a 3f */
3686
3687         asm volatile("vpcmpb $0x12,%zmm6,%zmm7,%k5");
3688         asm volatile("vpcmpw $0x12,%zmm6,%zmm7,%k5");
3689
3690         /* AVX-512: Op code 0f 3a 42 */
3691
3692         asm volatile("vmpsadbw $0x5,%ymm4,%ymm6,%ymm2");
3693         asm volatile("vdbpsadbw $0x12,%zmm4,%zmm5,%zmm6");
3694
3695         /* AVX-512: Op code 0f 3a 43 */
3696
3697         asm volatile("vshufi32x4 $0x12,%zmm5,%zmm6,%zmm7");
3698         asm volatile("vshufi64x2 $0x12,%zmm5,%zmm6,%zmm7");
3699
3700         /* AVX-512: Op code 0f 3a 44 */
3701
3702         asm volatile("vpclmulqdq $0x12,%xmm1,%xmm2,%xmm3");
3703         asm volatile("vpclmulqdq $0x12,%ymm1,%ymm2,%ymm3");
3704         asm volatile("vpclmulqdq $0x12,%zmm1,%zmm2,%zmm3");
3705
3706         /* AVX-512: Op code 0f 3a 50 */
3707
3708         asm volatile("vrangeps $0x12,%zmm5,%zmm6,%zmm7");
3709         asm volatile("vrangepd $0x12,%zmm5,%zmm6,%zmm7");
3710
3711         /* AVX-512: Op code 0f 3a 51 */
3712
3713         asm volatile("vrangess $0x12,%xmm5,%xmm6,%xmm7");
3714         asm volatile("vrangesd $0x12,%xmm5,%xmm6,%xmm7");
3715
3716         /* AVX-512: Op code 0f 3a 54 */
3717
3718         asm volatile("vfixupimmps $0x12,%zmm5,%zmm6,%zmm7");
3719         asm volatile("vfixupimmpd $0x12,%zmm5,%zmm6,%zmm7");
3720
3721         /* AVX-512: Op code 0f 3a 55 */
3722
3723         asm volatile("vfixupimmss $0x12,%xmm5,%xmm6,%xmm7{%k7}");
3724         asm volatile("vfixupimmsd $0x12,%xmm5,%xmm6,%xmm7{%k7}");
3725
3726         /* AVX-512: Op code 0f 3a 56 */
3727
3728         asm volatile("vreduceps $0x12,%zmm6,%zmm7");
3729         asm volatile("vreducepd $0x12,%zmm6,%zmm7");
3730
3731         /* AVX-512: Op code 0f 3a 57 */
3732
3733         asm volatile("vreducess $0x12,%xmm5,%xmm6,%xmm7");
3734         asm volatile("vreducesd $0x12,%xmm5,%xmm6,%xmm7");
3735
3736         /* AVX-512: Op code 0f 3a 66 */
3737
3738         asm volatile("vfpclassps $0x12,%zmm7,%k5");
3739         asm volatile("vfpclasspd $0x12,%zmm7,%k5");
3740
3741         /* AVX-512: Op code 0f 3a 67 */
3742
3743         asm volatile("vfpclassss $0x12,%xmm7,%k5");
3744         asm volatile("vfpclasssd $0x12,%xmm7,%k5");
3745
3746         /* AVX-512: Op code 0f 3a 70 */
3747
3748         asm volatile("vpshldw $0x12,%xmm1,%xmm2,%xmm3");
3749         asm volatile("vpshldw $0x12,%ymm1,%ymm2,%ymm3");
3750         asm volatile("vpshldw $0x12,%zmm1,%zmm2,%zmm3");
3751
3752         /* AVX-512: Op code 0f 3a 71 */
3753
3754         asm volatile("vpshldd $0x12,%xmm1,%xmm2,%xmm3");
3755         asm volatile("vpshldd $0x12,%ymm1,%ymm2,%ymm3");
3756         asm volatile("vpshldd $0x12,%zmm1,%zmm2,%zmm3");
3757
3758         asm volatile("vpshldq $0x12,%xmm1,%xmm2,%xmm3");
3759         asm volatile("vpshldq $0x12,%ymm1,%ymm2,%ymm3");
3760         asm volatile("vpshldq $0x12,%zmm1,%zmm2,%zmm3");
3761
3762         /* AVX-512: Op code 0f 3a 72 */
3763
3764         asm volatile("vpshrdw $0x12,%xmm1,%xmm2,%xmm3");
3765         asm volatile("vpshrdw $0x12,%ymm1,%ymm2,%ymm3");
3766         asm volatile("vpshrdw $0x12,%zmm1,%zmm2,%zmm3");
3767
3768         /* AVX-512: Op code 0f 3a 73 */
3769
3770         asm volatile("vpshrdd $0x12,%xmm1,%xmm2,%xmm3");
3771         asm volatile("vpshrdd $0x12,%ymm1,%ymm2,%ymm3");
3772         asm volatile("vpshrdd $0x12,%zmm1,%zmm2,%zmm3");
3773
3774         asm volatile("vpshrdq $0x12,%xmm1,%xmm2,%xmm3");
3775         asm volatile("vpshrdq $0x12,%ymm1,%ymm2,%ymm3");
3776         asm volatile("vpshrdq $0x12,%zmm1,%zmm2,%zmm3");
3777
3778         /* AVX-512: Op code 0f 3a ce */
3779
3780         asm volatile("gf2p8affineqb $0x12,%xmm1,%xmm3");
3781
3782         asm volatile("vgf2p8affineqb $0x12,%xmm1,%xmm2,%xmm3");
3783         asm volatile("vgf2p8affineqb $0x12,%ymm1,%ymm2,%ymm3");
3784         asm volatile("vgf2p8affineqb $0x12,%zmm1,%zmm2,%zmm3");
3785
3786         /* AVX-512: Op code 0f 3a cf */
3787
3788         asm volatile("gf2p8affineinvqb $0x12,%xmm1,%xmm3");
3789
3790         asm volatile("vgf2p8affineinvqb $0x12,%xmm1,%xmm2,%xmm3");
3791         asm volatile("vgf2p8affineinvqb $0x12,%ymm1,%ymm2,%ymm3");
3792         asm volatile("vgf2p8affineinvqb $0x12,%zmm1,%zmm2,%zmm3");
3793
3794         /* AVX-512: Op code 0f 72 (Grp13) */
3795
3796         asm volatile("vprord $0x12,%zmm5,%zmm6");
3797         asm volatile("vprorq $0x12,%zmm5,%zmm6");
3798         asm volatile("vprold $0x12,%zmm5,%zmm6");
3799         asm volatile("vprolq $0x12,%zmm5,%zmm6");
3800         asm volatile("psrad  $0x2,%mm6");
3801         asm volatile("vpsrad $0x5,%ymm6,%ymm2");
3802         asm volatile("vpsrad $0x5,%zmm6,%zmm2");
3803         asm volatile("vpsraq $0x5,%zmm6,%zmm2");
3804
3805         /* AVX-512: Op code 0f 38 c6 (Grp18) */
3806
3807         asm volatile("vgatherpf0dps 0x7b(%ebp,%zmm7,8){%k1}");
3808         asm volatile("vgatherpf0dpd 0x7b(%ebp,%ymm7,8){%k1}");
3809         asm volatile("vgatherpf1dps 0x7b(%ebp,%zmm7,8){%k1}");
3810         asm volatile("vgatherpf1dpd 0x7b(%ebp,%ymm7,8){%k1}");
3811         asm volatile("vscatterpf0dps 0x7b(%ebp,%zmm7,8){%k1}");
3812         asm volatile("vscatterpf0dpd 0x7b(%ebp,%ymm7,8){%k1}");
3813         asm volatile("vscatterpf1dps 0x7b(%ebp,%zmm7,8){%k1}");
3814         asm volatile("vscatterpf1dpd 0x7b(%ebp,%ymm7,8){%k1}");
3815
3816         /* AVX-512: Op code 0f 38 c7 (Grp19) */
3817
3818         asm volatile("vgatherpf0qps 0x7b(%ebp,%zmm7,8){%k1}");
3819         asm volatile("vgatherpf0qpd 0x7b(%ebp,%zmm7,8){%k1}");
3820         asm volatile("vgatherpf1qps 0x7b(%ebp,%zmm7,8){%k1}");
3821         asm volatile("vgatherpf1qpd 0x7b(%ebp,%zmm7,8){%k1}");
3822         asm volatile("vscatterpf0qps 0x7b(%ebp,%zmm7,8){%k1}");
3823         asm volatile("vscatterpf0qpd 0x7b(%ebp,%zmm7,8){%k1}");
3824         asm volatile("vscatterpf1qps 0x7b(%ebp,%zmm7,8){%k1}");
3825         asm volatile("vscatterpf1qpd 0x7b(%ebp,%zmm7,8){%k1}");
3826
3827         /* AVX-512: Examples */
3828
3829         asm volatile("vaddpd %zmm4,%zmm5,%zmm6");
3830         asm volatile("vaddpd %zmm4,%zmm5,%zmm6{%k7}");
3831         asm volatile("vaddpd %zmm4,%zmm5,%zmm6{%k7}{z}");
3832         asm volatile("vaddpd {rn-sae},%zmm4,%zmm5,%zmm6");
3833         asm volatile("vaddpd {ru-sae},%zmm4,%zmm5,%zmm6");
3834         asm volatile("vaddpd {rd-sae},%zmm4,%zmm5,%zmm6");
3835         asm volatile("vaddpd {rz-sae},%zmm4,%zmm5,%zmm6");
3836         asm volatile("vaddpd (%ecx),%zmm5,%zmm6");
3837         asm volatile("vaddpd 0x123(%eax,%ecx,8),%zmm5,%zmm6");
3838         asm volatile("vaddpd (%ecx){1to8},%zmm5,%zmm6");
3839         asm volatile("vaddpd 0x1fc0(%edx),%zmm5,%zmm6");
3840         asm volatile("vaddpd 0x3f8(%edx){1to8},%zmm5,%zmm6");
3841         asm volatile("vcmpeq_uqps 0x1fc(%edx){1to16},%zmm6,%k5");
3842         asm volatile("vcmpltsd 0x123(%eax,%ecx,8),%xmm3,%k5{%k7}");
3843         asm volatile("vcmplesd {sae},%xmm4,%xmm5,%k5{%k7}");
3844         asm volatile("vgetmantss $0x5b,0x123(%eax,%ecx,8),%xmm4,%xmm5{%k7}");
3845
3846         /* bndmk m32, bnd */
3847
3848         asm volatile("bndmk (%eax), %bnd0");
3849         asm volatile("bndmk (0x12345678), %bnd0");
3850         asm volatile("bndmk (%eax), %bnd3");
3851         asm volatile("bndmk (%ecx,%eax,1), %bnd0");
3852         asm volatile("bndmk 0x12345678(,%eax,1), %bnd0");
3853         asm volatile("bndmk (%eax,%ecx,1), %bnd0");
3854         asm volatile("bndmk (%eax,%ecx,8), %bnd0");
3855         asm volatile("bndmk 0x12(%eax), %bnd0");
3856         asm volatile("bndmk 0x12(%ebp), %bnd0");
3857         asm volatile("bndmk 0x12(%ecx,%eax,1), %bnd0");
3858         asm volatile("bndmk 0x12(%ebp,%eax,1), %bnd0");
3859         asm volatile("bndmk 0x12(%eax,%ecx,1), %bnd0");
3860         asm volatile("bndmk 0x12(%eax,%ecx,8), %bnd0");
3861         asm volatile("bndmk 0x12345678(%eax), %bnd0");
3862         asm volatile("bndmk 0x12345678(%ebp), %bnd0");
3863         asm volatile("bndmk 0x12345678(%ecx,%eax,1), %bnd0");
3864         asm volatile("bndmk 0x12345678(%ebp,%eax,1), %bnd0");
3865         asm volatile("bndmk 0x12345678(%eax,%ecx,1), %bnd0");
3866         asm volatile("bndmk 0x12345678(%eax,%ecx,8), %bnd0");
3867
3868         /* bndcl r/m32, bnd */
3869
3870         asm volatile("bndcl (%eax), %bnd0");
3871         asm volatile("bndcl (0x12345678), %bnd0");
3872         asm volatile("bndcl (%eax), %bnd3");
3873         asm volatile("bndcl (%ecx,%eax,1), %bnd0");
3874         asm volatile("bndcl 0x12345678(,%eax,1), %bnd0");
3875         asm volatile("bndcl (%eax,%ecx,1), %bnd0");
3876         asm volatile("bndcl (%eax,%ecx,8), %bnd0");
3877         asm volatile("bndcl 0x12(%eax), %bnd0");
3878         asm volatile("bndcl 0x12(%ebp), %bnd0");
3879         asm volatile("bndcl 0x12(%ecx,%eax,1), %bnd0");
3880         asm volatile("bndcl 0x12(%ebp,%eax,1), %bnd0");
3881         asm volatile("bndcl 0x12(%eax,%ecx,1), %bnd0");
3882         asm volatile("bndcl 0x12(%eax,%ecx,8), %bnd0");
3883         asm volatile("bndcl 0x12345678(%eax), %bnd0");
3884         asm volatile("bndcl 0x12345678(%ebp), %bnd0");
3885         asm volatile("bndcl 0x12345678(%ecx,%eax,1), %bnd0");
3886         asm volatile("bndcl 0x12345678(%ebp,%eax,1), %bnd0");
3887         asm volatile("bndcl 0x12345678(%eax,%ecx,1), %bnd0");
3888         asm volatile("bndcl 0x12345678(%eax,%ecx,8), %bnd0");
3889         asm volatile("bndcl %eax, %bnd0");
3890
3891         /* bndcu r/m32, bnd */
3892
3893         asm volatile("bndcu (%eax), %bnd0");
3894         asm volatile("bndcu (0x12345678), %bnd0");
3895         asm volatile("bndcu (%eax), %bnd3");
3896         asm volatile("bndcu (%ecx,%eax,1), %bnd0");
3897         asm volatile("bndcu 0x12345678(,%eax,1), %bnd0");
3898         asm volatile("bndcu (%eax,%ecx,1), %bnd0");
3899         asm volatile("bndcu (%eax,%ecx,8), %bnd0");
3900         asm volatile("bndcu 0x12(%eax), %bnd0");
3901         asm volatile("bndcu 0x12(%ebp), %bnd0");
3902         asm volatile("bndcu 0x12(%ecx,%eax,1), %bnd0");
3903         asm volatile("bndcu 0x12(%ebp,%eax,1), %bnd0");
3904         asm volatile("bndcu 0x12(%eax,%ecx,1), %bnd0");
3905         asm volatile("bndcu 0x12(%eax,%ecx,8), %bnd0");
3906         asm volatile("bndcu 0x12345678(%eax), %bnd0");
3907         asm volatile("bndcu 0x12345678(%ebp), %bnd0");
3908         asm volatile("bndcu 0x12345678(%ecx,%eax,1), %bnd0");
3909         asm volatile("bndcu 0x12345678(%ebp,%eax,1), %bnd0");
3910         asm volatile("bndcu 0x12345678(%eax,%ecx,1), %bnd0");
3911         asm volatile("bndcu 0x12345678(%eax,%ecx,8), %bnd0");
3912         asm volatile("bndcu %eax, %bnd0");
3913
3914         /* bndcn r/m32, bnd */
3915
3916         asm volatile("bndcn (%eax), %bnd0");
3917         asm volatile("bndcn (0x12345678), %bnd0");
3918         asm volatile("bndcn (%eax), %bnd3");
3919         asm volatile("bndcn (%ecx,%eax,1), %bnd0");
3920         asm volatile("bndcn 0x12345678(,%eax,1), %bnd0");
3921         asm volatile("bndcn (%eax,%ecx,1), %bnd0");
3922         asm volatile("bndcn (%eax,%ecx,8), %bnd0");
3923         asm volatile("bndcn 0x12(%eax), %bnd0");
3924         asm volatile("bndcn 0x12(%ebp), %bnd0");
3925         asm volatile("bndcn 0x12(%ecx,%eax,1), %bnd0");
3926         asm volatile("bndcn 0x12(%ebp,%eax,1), %bnd0");
3927         asm volatile("bndcn 0x12(%eax,%ecx,1), %bnd0");
3928         asm volatile("bndcn 0x12(%eax,%ecx,8), %bnd0");
3929         asm volatile("bndcn 0x12345678(%eax), %bnd0");
3930         asm volatile("bndcn 0x12345678(%ebp), %bnd0");
3931         asm volatile("bndcn 0x12345678(%ecx,%eax,1), %bnd0");
3932         asm volatile("bndcn 0x12345678(%ebp,%eax,1), %bnd0");
3933         asm volatile("bndcn 0x12345678(%eax,%ecx,1), %bnd0");
3934         asm volatile("bndcn 0x12345678(%eax,%ecx,8), %bnd0");
3935         asm volatile("bndcn %eax, %bnd0");
3936
3937         /* bndmov m64, bnd */
3938
3939         asm volatile("bndmov (%eax), %bnd0");
3940         asm volatile("bndmov (0x12345678), %bnd0");
3941         asm volatile("bndmov (%eax), %bnd3");
3942         asm volatile("bndmov (%ecx,%eax,1), %bnd0");
3943         asm volatile("bndmov 0x12345678(,%eax,1), %bnd0");
3944         asm volatile("bndmov (%eax,%ecx,1), %bnd0");
3945         asm volatile("bndmov (%eax,%ecx,8), %bnd0");
3946         asm volatile("bndmov 0x12(%eax), %bnd0");
3947         asm volatile("bndmov 0x12(%ebp), %bnd0");
3948         asm volatile("bndmov 0x12(%ecx,%eax,1), %bnd0");
3949         asm volatile("bndmov 0x12(%ebp,%eax,1), %bnd0");
3950         asm volatile("bndmov 0x12(%eax,%ecx,1), %bnd0");
3951         asm volatile("bndmov 0x12(%eax,%ecx,8), %bnd0");
3952         asm volatile("bndmov 0x12345678(%eax), %bnd0");
3953         asm volatile("bndmov 0x12345678(%ebp), %bnd0");
3954         asm volatile("bndmov 0x12345678(%ecx,%eax,1), %bnd0");
3955         asm volatile("bndmov 0x12345678(%ebp,%eax,1), %bnd0");
3956         asm volatile("bndmov 0x12345678(%eax,%ecx,1), %bnd0");
3957         asm volatile("bndmov 0x12345678(%eax,%ecx,8), %bnd0");
3958
3959         /* bndmov bnd, m64 */
3960
3961         asm volatile("bndmov %bnd0, (%eax)");
3962         asm volatile("bndmov %bnd0, (0x12345678)");
3963         asm volatile("bndmov %bnd3, (%eax)");
3964         asm volatile("bndmov %bnd0, (%ecx,%eax,1)");
3965         asm volatile("bndmov %bnd0, 0x12345678(,%eax,1)");
3966         asm volatile("bndmov %bnd0, (%eax,%ecx,1)");
3967         asm volatile("bndmov %bnd0, (%eax,%ecx,8)");
3968         asm volatile("bndmov %bnd0, 0x12(%eax)");
3969         asm volatile("bndmov %bnd0, 0x12(%ebp)");
3970         asm volatile("bndmov %bnd0, 0x12(%ecx,%eax,1)");
3971         asm volatile("bndmov %bnd0, 0x12(%ebp,%eax,1)");
3972         asm volatile("bndmov %bnd0, 0x12(%eax,%ecx,1)");
3973         asm volatile("bndmov %bnd0, 0x12(%eax,%ecx,8)");
3974         asm volatile("bndmov %bnd0, 0x12345678(%eax)");
3975         asm volatile("bndmov %bnd0, 0x12345678(%ebp)");
3976         asm volatile("bndmov %bnd0, 0x12345678(%ecx,%eax,1)");
3977         asm volatile("bndmov %bnd0, 0x12345678(%ebp,%eax,1)");
3978         asm volatile("bndmov %bnd0, 0x12345678(%eax,%ecx,1)");
3979         asm volatile("bndmov %bnd0, 0x12345678(%eax,%ecx,8)");
3980
3981         /* bndmov bnd2, bnd1 */
3982
3983         asm volatile("bndmov %bnd0, %bnd1");
3984         asm volatile("bndmov %bnd1, %bnd0");
3985
3986         /* bndldx mib, bnd */
3987
3988         asm volatile("bndldx (%eax), %bnd0");
3989         asm volatile("bndldx (0x12345678), %bnd0");
3990         asm volatile("bndldx (%eax), %bnd3");
3991         asm volatile("bndldx (%ecx,%eax,1), %bnd0");
3992         asm volatile("bndldx 0x12345678(,%eax,1), %bnd0");
3993         asm volatile("bndldx (%eax,%ecx,1), %bnd0");
3994         asm volatile("bndldx 0x12(%eax), %bnd0");
3995         asm volatile("bndldx 0x12(%ebp), %bnd0");
3996         asm volatile("bndldx 0x12(%ecx,%eax,1), %bnd0");
3997         asm volatile("bndldx 0x12(%ebp,%eax,1), %bnd0");
3998         asm volatile("bndldx 0x12(%eax,%ecx,1), %bnd0");
3999         asm volatile("bndldx 0x12345678(%eax), %bnd0");
4000         asm volatile("bndldx 0x12345678(%ebp), %bnd0");
4001         asm volatile("bndldx 0x12345678(%ecx,%eax,1), %bnd0");
4002         asm volatile("bndldx 0x12345678(%ebp,%eax,1), %bnd0");
4003         asm volatile("bndldx 0x12345678(%eax,%ecx,1), %bnd0");
4004
4005         /* bndstx bnd, mib */
4006
4007         asm volatile("bndstx %bnd0, (%eax)");
4008         asm volatile("bndstx %bnd0, (0x12345678)");
4009         asm volatile("bndstx %bnd3, (%eax)");
4010         asm volatile("bndstx %bnd0, (%ecx,%eax,1)");
4011         asm volatile("bndstx %bnd0, 0x12345678(,%eax,1)");
4012         asm volatile("bndstx %bnd0, (%eax,%ecx,1)");
4013         asm volatile("bndstx %bnd0, 0x12(%eax)");
4014         asm volatile("bndstx %bnd0, 0x12(%ebp)");
4015         asm volatile("bndstx %bnd0, 0x12(%ecx,%eax,1)");
4016         asm volatile("bndstx %bnd0, 0x12(%ebp,%eax,1)");
4017         asm volatile("bndstx %bnd0, 0x12(%eax,%ecx,1)");
4018         asm volatile("bndstx %bnd0, 0x12345678(%eax)");
4019         asm volatile("bndstx %bnd0, 0x12345678(%ebp)");
4020         asm volatile("bndstx %bnd0, 0x12345678(%ecx,%eax,1)");
4021         asm volatile("bndstx %bnd0, 0x12345678(%ebp,%eax,1)");
4022         asm volatile("bndstx %bnd0, 0x12345678(%eax,%ecx,1)");
4023
4024         /* bnd prefix on call, ret, jmp and all jcc */
4025
4026         asm volatile("bnd call label1");  /* Expecting: call unconditional 0xfffffffc */
4027         asm volatile("bnd call *(%eax)"); /* Expecting: call indirect      0 */
4028         asm volatile("bnd ret");          /* Expecting: ret  indirect      0 */
4029         asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0xfffffffc */
4030         asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0xfffffffc */
4031         asm volatile("bnd jmp *(%ecx)");  /* Expecting: jmp  indirect      0 */
4032         asm volatile("bnd jne label1");   /* Expecting: jcc  conditional   0xfffffffc */
4033
4034         /* sha1rnds4 imm8, xmm2/m128, xmm1 */
4035
4036         asm volatile("sha1rnds4 $0x0, %xmm1, %xmm0");
4037         asm volatile("sha1rnds4 $0x91, %xmm7, %xmm2");
4038         asm volatile("sha1rnds4 $0x91, (%eax), %xmm0");
4039         asm volatile("sha1rnds4 $0x91, (0x12345678), %xmm0");
4040         asm volatile("sha1rnds4 $0x91, (%eax), %xmm3");
4041         asm volatile("sha1rnds4 $0x91, (%ecx,%eax,1), %xmm0");
4042         asm volatile("sha1rnds4 $0x91, 0x12345678(,%eax,1), %xmm0");
4043         asm volatile("sha1rnds4 $0x91, (%eax,%ecx,1), %xmm0");
4044         asm volatile("sha1rnds4 $0x91, (%eax,%ecx,8), %xmm0");
4045         asm volatile("sha1rnds4 $0x91, 0x12(%eax), %xmm0");
4046         asm volatile("sha1rnds4 $0x91, 0x12(%ebp), %xmm0");
4047         asm volatile("sha1rnds4 $0x91, 0x12(%ecx,%eax,1), %xmm0");
4048         asm volatile("sha1rnds4 $0x91, 0x12(%ebp,%eax,1), %xmm0");
4049         asm volatile("sha1rnds4 $0x91, 0x12(%eax,%ecx,1), %xmm0");
4050         asm volatile("sha1rnds4 $0x91, 0x12(%eax,%ecx,8), %xmm0");
4051         asm volatile("sha1rnds4 $0x91, 0x12345678(%eax), %xmm0");
4052         asm volatile("sha1rnds4 $0x91, 0x12345678(%ebp), %xmm0");
4053         asm volatile("sha1rnds4 $0x91, 0x12345678(%ecx,%eax,1), %xmm0");
4054         asm volatile("sha1rnds4 $0x91, 0x12345678(%ebp,%eax,1), %xmm0");
4055         asm volatile("sha1rnds4 $0x91, 0x12345678(%eax,%ecx,1), %xmm0");
4056         asm volatile("sha1rnds4 $0x91, 0x12345678(%eax,%ecx,8), %xmm0");
4057
4058         /* sha1nexte xmm2/m128, xmm1 */
4059
4060         asm volatile("sha1nexte %xmm1, %xmm0");
4061         asm volatile("sha1nexte %xmm7, %xmm2");
4062         asm volatile("sha1nexte (%eax), %xmm0");
4063         asm volatile("sha1nexte (0x12345678), %xmm0");
4064         asm volatile("sha1nexte (%eax), %xmm3");
4065         asm volatile("sha1nexte (%ecx,%eax,1), %xmm0");
4066         asm volatile("sha1nexte 0x12345678(,%eax,1), %xmm0");
4067         asm volatile("sha1nexte (%eax,%ecx,1), %xmm0");
4068         asm volatile("sha1nexte (%eax,%ecx,8), %xmm0");
4069         asm volatile("sha1nexte 0x12(%eax), %xmm0");
4070         asm volatile("sha1nexte 0x12(%ebp), %xmm0");
4071         asm volatile("sha1nexte 0x12(%ecx,%eax,1), %xmm0");
4072         asm volatile("sha1nexte 0x12(%ebp,%eax,1), %xmm0");
4073         asm volatile("sha1nexte 0x12(%eax,%ecx,1), %xmm0");
4074         asm volatile("sha1nexte 0x12(%eax,%ecx,8), %xmm0");
4075         asm volatile("sha1nexte 0x12345678(%eax), %xmm0");
4076         asm volatile("sha1nexte 0x12345678(%ebp), %xmm0");
4077         asm volatile("sha1nexte 0x12345678(%ecx,%eax,1), %xmm0");
4078         asm volatile("sha1nexte 0x12345678(%ebp,%eax,1), %xmm0");
4079         asm volatile("sha1nexte 0x12345678(%eax,%ecx,1), %xmm0");
4080         asm volatile("sha1nexte 0x12345678(%eax,%ecx,8), %xmm0");
4081
4082         /* sha1msg1 xmm2/m128, xmm1 */
4083
4084         asm volatile("sha1msg1 %xmm1, %xmm0");
4085         asm volatile("sha1msg1 %xmm7, %xmm2");
4086         asm volatile("sha1msg1 (%eax), %xmm0");
4087         asm volatile("sha1msg1 (0x12345678), %xmm0");
4088         asm volatile("sha1msg1 (%eax), %xmm3");
4089         asm volatile("sha1msg1 (%ecx,%eax,1), %xmm0");
4090         asm volatile("sha1msg1 0x12345678(,%eax,1), %xmm0");
4091         asm volatile("sha1msg1 (%eax,%ecx,1), %xmm0");
4092         asm volatile("sha1msg1 (%eax,%ecx,8), %xmm0");
4093         asm volatile("sha1msg1 0x12(%eax), %xmm0");
4094         asm volatile("sha1msg1 0x12(%ebp), %xmm0");
4095         asm volatile("sha1msg1 0x12(%ecx,%eax,1), %xmm0");
4096         asm volatile("sha1msg1 0x12(%ebp,%eax,1), %xmm0");
4097         asm volatile("sha1msg1 0x12(%eax,%ecx,1), %xmm0");
4098         asm volatile("sha1msg1 0x12(%eax,%ecx,8), %xmm0");
4099         asm volatile("sha1msg1 0x12345678(%eax), %xmm0");
4100         asm volatile("sha1msg1 0x12345678(%ebp), %xmm0");
4101         asm volatile("sha1msg1 0x12345678(%ecx,%eax,1), %xmm0");
4102         asm volatile("sha1msg1 0x12345678(%ebp,%eax,1), %xmm0");
4103         asm volatile("sha1msg1 0x12345678(%eax,%ecx,1), %xmm0");
4104         asm volatile("sha1msg1 0x12345678(%eax,%ecx,8), %xmm0");
4105
4106         /* sha1msg2 xmm2/m128, xmm1 */
4107
4108         asm volatile("sha1msg2 %xmm1, %xmm0");
4109         asm volatile("sha1msg2 %xmm7, %xmm2");
4110         asm volatile("sha1msg2 (%eax), %xmm0");
4111         asm volatile("sha1msg2 (0x12345678), %xmm0");
4112         asm volatile("sha1msg2 (%eax), %xmm3");
4113         asm volatile("sha1msg2 (%ecx,%eax,1), %xmm0");
4114         asm volatile("sha1msg2 0x12345678(,%eax,1), %xmm0");
4115         asm volatile("sha1msg2 (%eax,%ecx,1), %xmm0");
4116         asm volatile("sha1msg2 (%eax,%ecx,8), %xmm0");
4117         asm volatile("sha1msg2 0x12(%eax), %xmm0");
4118         asm volatile("sha1msg2 0x12(%ebp), %xmm0");
4119         asm volatile("sha1msg2 0x12(%ecx,%eax,1), %xmm0");
4120         asm volatile("sha1msg2 0x12(%ebp,%eax,1), %xmm0");
4121         asm volatile("sha1msg2 0x12(%eax,%ecx,1), %xmm0");
4122         asm volatile("sha1msg2 0x12(%eax,%ecx,8), %xmm0");
4123         asm volatile("sha1msg2 0x12345678(%eax), %xmm0");
4124         asm volatile("sha1msg2 0x12345678(%ebp), %xmm0");
4125         asm volatile("sha1msg2 0x12345678(%ecx,%eax,1), %xmm0");
4126         asm volatile("sha1msg2 0x12345678(%ebp,%eax,1), %xmm0");
4127         asm volatile("sha1msg2 0x12345678(%eax,%ecx,1), %xmm0");
4128         asm volatile("sha1msg2 0x12345678(%eax,%ecx,8), %xmm0");
4129
4130         /* sha256rnds2 <XMM0>, xmm2/m128, xmm1 */
4131         /* Note sha256rnds2 has an implicit operand 'xmm0' */
4132
4133         asm volatile("sha256rnds2 %xmm4, %xmm1");
4134         asm volatile("sha256rnds2 %xmm7, %xmm2");
4135         asm volatile("sha256rnds2 (%eax), %xmm1");
4136         asm volatile("sha256rnds2 (0x12345678), %xmm1");
4137         asm volatile("sha256rnds2 (%eax), %xmm3");
4138         asm volatile("sha256rnds2 (%ecx,%eax,1), %xmm1");
4139         asm volatile("sha256rnds2 0x12345678(,%eax,1), %xmm1");
4140         asm volatile("sha256rnds2 (%eax,%ecx,1), %xmm1");
4141         asm volatile("sha256rnds2 (%eax,%ecx,8), %xmm1");
4142         asm volatile("sha256rnds2 0x12(%eax), %xmm1");
4143         asm volatile("sha256rnds2 0x12(%ebp), %xmm1");
4144         asm volatile("sha256rnds2 0x12(%ecx,%eax,1), %xmm1");
4145         asm volatile("sha256rnds2 0x12(%ebp,%eax,1), %xmm1");
4146         asm volatile("sha256rnds2 0x12(%eax,%ecx,1), %xmm1");
4147         asm volatile("sha256rnds2 0x12(%eax,%ecx,8), %xmm1");
4148         asm volatile("sha256rnds2 0x12345678(%eax), %xmm1");
4149         asm volatile("sha256rnds2 0x12345678(%ebp), %xmm1");
4150         asm volatile("sha256rnds2 0x12345678(%ecx,%eax,1), %xmm1");
4151         asm volatile("sha256rnds2 0x12345678(%ebp,%eax,1), %xmm1");
4152         asm volatile("sha256rnds2 0x12345678(%eax,%ecx,1), %xmm1");
4153         asm volatile("sha256rnds2 0x12345678(%eax,%ecx,8), %xmm1");
4154
4155         /* sha256msg1 xmm2/m128, xmm1 */
4156
4157         asm volatile("sha256msg1 %xmm1, %xmm0");
4158         asm volatile("sha256msg1 %xmm7, %xmm2");
4159         asm volatile("sha256msg1 (%eax), %xmm0");
4160         asm volatile("sha256msg1 (0x12345678), %xmm0");
4161         asm volatile("sha256msg1 (%eax), %xmm3");
4162         asm volatile("sha256msg1 (%ecx,%eax,1), %xmm0");
4163         asm volatile("sha256msg1 0x12345678(,%eax,1), %xmm0");
4164         asm volatile("sha256msg1 (%eax,%ecx,1), %xmm0");
4165         asm volatile("sha256msg1 (%eax,%ecx,8), %xmm0");
4166         asm volatile("sha256msg1 0x12(%eax), %xmm0");
4167         asm volatile("sha256msg1 0x12(%ebp), %xmm0");
4168         asm volatile("sha256msg1 0x12(%ecx,%eax,1), %xmm0");
4169         asm volatile("sha256msg1 0x12(%ebp,%eax,1), %xmm0");
4170         asm volatile("sha256msg1 0x12(%eax,%ecx,1), %xmm0");
4171         asm volatile("sha256msg1 0x12(%eax,%ecx,8), %xmm0");
4172         asm volatile("sha256msg1 0x12345678(%eax), %xmm0");
4173         asm volatile("sha256msg1 0x12345678(%ebp), %xmm0");
4174         asm volatile("sha256msg1 0x12345678(%ecx,%eax,1), %xmm0");
4175         asm volatile("sha256msg1 0x12345678(%ebp,%eax,1), %xmm0");
4176         asm volatile("sha256msg1 0x12345678(%eax,%ecx,1), %xmm0");
4177         asm volatile("sha256msg1 0x12345678(%eax,%ecx,8), %xmm0");
4178
4179         /* sha256msg2 xmm2/m128, xmm1 */
4180
4181         asm volatile("sha256msg2 %xmm1, %xmm0");
4182         asm volatile("sha256msg2 %xmm7, %xmm2");
4183         asm volatile("sha256msg2 (%eax), %xmm0");
4184         asm volatile("sha256msg2 (0x12345678), %xmm0");
4185         asm volatile("sha256msg2 (%eax), %xmm3");
4186         asm volatile("sha256msg2 (%ecx,%eax,1), %xmm0");
4187         asm volatile("sha256msg2 0x12345678(,%eax,1), %xmm0");
4188         asm volatile("sha256msg2 (%eax,%ecx,1), %xmm0");
4189         asm volatile("sha256msg2 (%eax,%ecx,8), %xmm0");
4190         asm volatile("sha256msg2 0x12(%eax), %xmm0");
4191         asm volatile("sha256msg2 0x12(%ebp), %xmm0");
4192         asm volatile("sha256msg2 0x12(%ecx,%eax,1), %xmm0");
4193         asm volatile("sha256msg2 0x12(%ebp,%eax,1), %xmm0");
4194         asm volatile("sha256msg2 0x12(%eax,%ecx,1), %xmm0");
4195         asm volatile("sha256msg2 0x12(%eax,%ecx,8), %xmm0");
4196         asm volatile("sha256msg2 0x12345678(%eax), %xmm0");
4197         asm volatile("sha256msg2 0x12345678(%ebp), %xmm0");
4198         asm volatile("sha256msg2 0x12345678(%ecx,%eax,1), %xmm0");
4199         asm volatile("sha256msg2 0x12345678(%ebp,%eax,1), %xmm0");
4200         asm volatile("sha256msg2 0x12345678(%eax,%ecx,1), %xmm0");
4201         asm volatile("sha256msg2 0x12345678(%eax,%ecx,8), %xmm0");
4202
4203         /* clflushopt m8 */
4204
4205         asm volatile("clflushopt (%eax)");
4206         asm volatile("clflushopt (0x12345678)");
4207         asm volatile("clflushopt 0x12345678(%eax,%ecx,8)");
4208         /* Also check instructions in the same group encoding as clflushopt */
4209         asm volatile("clflush (%eax)");
4210         asm volatile("sfence");
4211
4212         /* clwb m8 */
4213
4214         asm volatile("clwb (%eax)");
4215         asm volatile("clwb (0x12345678)");
4216         asm volatile("clwb 0x12345678(%eax,%ecx,8)");
4217         /* Also check instructions in the same group encoding as clwb */
4218         asm volatile("xsaveopt (%eax)");
4219         asm volatile("mfence");
4220
4221         /* cldemote m8 */
4222
4223         asm volatile("cldemote (%eax)");
4224         asm volatile("cldemote (0x12345678)");
4225         asm volatile("cldemote 0x12345678(%eax,%ecx,8)");
4226
4227         /* xsavec mem */
4228
4229         asm volatile("xsavec (%eax)");
4230         asm volatile("xsavec (0x12345678)");
4231         asm volatile("xsavec 0x12345678(%eax,%ecx,8)");
4232
4233         /* xsaves mem */
4234
4235         asm volatile("xsaves (%eax)");
4236         asm volatile("xsaves (0x12345678)");
4237         asm volatile("xsaves 0x12345678(%eax,%ecx,8)");
4238
4239         /* xrstors mem */
4240
4241         asm volatile("xrstors (%eax)");
4242         asm volatile("xrstors (0x12345678)");
4243         asm volatile("xrstors 0x12345678(%eax,%ecx,8)");
4244
4245         /* ptwrite */
4246
4247         asm volatile("ptwrite (%eax)");
4248         asm volatile("ptwrite (0x12345678)");
4249         asm volatile("ptwrite 0x12345678(%eax,%ecx,8)");
4250
4251         asm volatile("ptwritel (%eax)");
4252         asm volatile("ptwritel (0x12345678)");
4253         asm volatile("ptwritel 0x12345678(%eax,%ecx,8)");
4254
4255         /* tpause */
4256
4257         asm volatile("tpause %ebx");
4258
4259         /* umonitor */
4260
4261         asm volatile("umonitor %ax");
4262         asm volatile("umonitor %eax");
4263
4264         /* umwait */
4265
4266         asm volatile("umwait %eax");
4267
4268         /* movdiri */
4269
4270         asm volatile("movdiri %eax,(%ebx)");
4271         asm volatile("movdiri %ecx,0x12345678(%eax)");
4272
4273         /* movdir64b */
4274
4275         asm volatile("movdir64b (%eax),%ebx");
4276         asm volatile("movdir64b 0x12345678(%eax),%ecx");
4277         asm volatile("movdir64b (%si),%bx");
4278         asm volatile("movdir64b 0x1234(%si),%cx");
4279
4280         /* enqcmd */
4281
4282         asm volatile("enqcmd (%eax),%ebx");
4283         asm volatile("enqcmd 0x12345678(%eax),%ecx");
4284         asm volatile("enqcmd (%si),%bx");
4285         asm volatile("enqcmd 0x1234(%si),%cx");
4286
4287         /* enqcmds */
4288
4289         asm volatile("enqcmds (%eax),%ebx");
4290         asm volatile("enqcmds 0x12345678(%eax),%ecx");
4291         asm volatile("enqcmds (%si),%bx");
4292         asm volatile("enqcmds 0x1234(%si),%cx");
4293
4294         /* incsspd */
4295
4296         asm volatile("incsspd %eax");
4297         /* Also check instructions in the same group encoding as incsspd */
4298         asm volatile("xrstor (%eax)");
4299         asm volatile("xrstor (0x12345678)");
4300         asm volatile("xrstor 0x12345678(%eax,%ecx,8)");
4301         asm volatile("lfence");
4302
4303         /* rdsspd */
4304
4305         asm volatile("rdsspd %eax");
4306
4307         /* saveprevssp */
4308
4309         asm volatile("saveprevssp");
4310
4311         /* rstorssp */
4312
4313         asm volatile("rstorssp (%eax)");
4314         asm volatile("rstorssp (0x12345678)");
4315         asm volatile("rstorssp 0x12345678(%eax,%ecx,8)");
4316
4317         /* wrssd */
4318
4319         asm volatile("wrssd %ecx,(%eax)");
4320         asm volatile("wrssd %edx,(0x12345678)");
4321         asm volatile("wrssd %edx,0x12345678(%eax,%ecx,8)");
4322
4323         /* wrussd */
4324
4325         asm volatile("wrussd %ecx,(%eax)");
4326         asm volatile("wrussd %edx,(0x12345678)");
4327         asm volatile("wrussd %edx,0x12345678(%eax,%ecx,8)");
4328
4329         /* setssbsy */
4330
4331         asm volatile("setssbsy");
4332         /* Also check instructions in the same group encoding as setssbsy */
4333         asm volatile("rdpkru");
4334         asm volatile("wrpkru");
4335
4336         /* clrssbsy */
4337
4338         asm volatile("clrssbsy (%eax)");
4339         asm volatile("clrssbsy (0x12345678)");
4340         asm volatile("clrssbsy 0x12345678(%eax,%ecx,8)");
4341
4342         /* endbr32/64 */
4343
4344         asm volatile("endbr32");
4345         asm volatile("endbr64");
4346
4347         /* call with/without notrack prefix */
4348
4349         asm volatile("call *%eax");                             /* Expecting: call indirect 0 */
4350         asm volatile("call *(%eax)");                           /* Expecting: call indirect 0 */
4351         asm volatile("call *(0x12345678)");                     /* Expecting: call indirect 0 */
4352         asm volatile("call *0x12345678(%eax,%ecx,8)");          /* Expecting: call indirect 0 */
4353
4354         asm volatile("bnd call *%eax");                         /* Expecting: call indirect 0 */
4355         asm volatile("bnd call *(%eax)");                       /* Expecting: call indirect 0 */
4356         asm volatile("bnd call *(0x12345678)");                 /* Expecting: call indirect 0 */
4357         asm volatile("bnd call *0x12345678(%eax,%ecx,8)");      /* Expecting: call indirect 0 */
4358
4359         asm volatile("notrack call *%eax");                     /* Expecting: call indirect 0 */
4360         asm volatile("notrack call *(%eax)");                   /* Expecting: call indirect 0 */
4361         asm volatile("notrack call *(0x12345678)");             /* Expecting: call indirect 0 */
4362         asm volatile("notrack call *0x12345678(%eax,%ecx,8)");  /* Expecting: call indirect 0 */
4363
4364         asm volatile("notrack bnd call *%eax");                 /* Expecting: call indirect 0 */
4365         asm volatile("notrack bnd call *(%eax)");               /* Expecting: call indirect 0 */
4366         asm volatile("notrack bnd call *(0x12345678)");         /* Expecting: call indirect 0 */
4367         asm volatile("notrack bnd call *0x12345678(%eax,%ecx,8)"); /* Expecting: call indirect 0 */
4368
4369         /* jmp with/without notrack prefix */
4370
4371         asm volatile("jmp *%eax");                              /* Expecting: jmp indirect 0 */
4372         asm volatile("jmp *(%eax)");                            /* Expecting: jmp indirect 0 */
4373         asm volatile("jmp *(0x12345678)");                      /* Expecting: jmp indirect 0 */
4374         asm volatile("jmp *0x12345678(%eax,%ecx,8)");           /* Expecting: jmp indirect 0 */
4375
4376         asm volatile("bnd jmp *%eax");                          /* Expecting: jmp indirect 0 */
4377         asm volatile("bnd jmp *(%eax)");                        /* Expecting: jmp indirect 0 */
4378         asm volatile("bnd jmp *(0x12345678)");                  /* Expecting: jmp indirect 0 */
4379         asm volatile("bnd jmp *0x12345678(%eax,%ecx,8)");       /* Expecting: jmp indirect 0 */
4380
4381         asm volatile("notrack jmp *%eax");                      /* Expecting: jmp indirect 0 */
4382         asm volatile("notrack jmp *(%eax)");                    /* Expecting: jmp indirect 0 */
4383         asm volatile("notrack jmp *(0x12345678)");              /* Expecting: jmp indirect 0 */
4384         asm volatile("notrack jmp *0x12345678(%eax,%ecx,8)");   /* Expecting: jmp indirect 0 */
4385
4386         asm volatile("notrack bnd jmp *%eax");                  /* Expecting: jmp indirect 0 */
4387         asm volatile("notrack bnd jmp *(%eax)");                /* Expecting: jmp indirect 0 */
4388         asm volatile("notrack bnd jmp *(0x12345678)");          /* Expecting: jmp indirect 0 */
4389         asm volatile("notrack bnd jmp *0x12345678(%eax,%ecx,8)"); /* Expecting: jmp indirect 0 */
4390
4391         /* AVX512-FP16 */
4392
4393         asm volatile("vaddph %zmm3, %zmm2, %zmm1");
4394         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4395         asm volatile("vaddph %xmm3, %xmm2, %xmm1");
4396         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4397         asm volatile("vaddph %ymm3, %ymm2, %ymm1");
4398         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4399         asm volatile("vaddsh %xmm3, %xmm2, %xmm1");
4400         asm volatile("vaddsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4401         asm volatile("vcmpph $0x12, %zmm3, %zmm2, %k5");
4402         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %zmm2, %k5");
4403         asm volatile("vcmpph $0x12, %xmm3, %xmm2, %k5");
4404         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
4405         asm volatile("vcmpph $0x12, %ymm3, %ymm2, %k5");
4406         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %ymm2, %k5");
4407         asm volatile("vcmpsh $0x12, %xmm3, %xmm2, %k5");
4408         asm volatile("vcmpsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
4409         asm volatile("vcomish %xmm2, %xmm1");
4410         asm volatile("vcomish 0x12345678(%eax,%ecx,8), %xmm1");
4411         asm volatile("vcvtdq2ph %zmm2, %ymm1");
4412         asm volatile("vcvtdq2ph 0x12345678(%eax,%ecx,8), %ymm1");
4413         asm volatile("vcvtdq2ph %xmm2, %xmm1");
4414         asm volatile("vcvtdq2ph %ymm2, %xmm1");
4415         asm volatile("vcvtpd2ph %zmm2, %xmm1");
4416         asm volatile("vcvtpd2ph %xmm2, %xmm1");
4417         asm volatile("vcvtpd2ph %ymm2, %xmm1");
4418         asm volatile("vcvtph2dq %ymm2, %zmm1");
4419         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %zmm1");
4420         asm volatile("vcvtph2dq %xmm2, %xmm1");
4421         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %xmm1");
4422         asm volatile("vcvtph2dq %xmm2, %ymm1");
4423         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %ymm1");
4424         asm volatile("vcvtph2pd %xmm2, %zmm1");
4425         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %zmm1");
4426         asm volatile("vcvtph2pd %xmm2, %xmm1");
4427         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %xmm1");
4428         asm volatile("vcvtph2pd %xmm2, %ymm1");
4429         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %ymm1");
4430         asm volatile("vcvtph2ps %ymm2, %zmm1");
4431         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %zmm1");
4432         asm volatile("vcvtph2ps %xmm2, %xmm1");
4433         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
4434         asm volatile("vcvtph2ps %xmm2, %ymm1");
4435         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
4436         asm volatile("vcvtph2ps %xmm2, %xmm1");
4437         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
4438         asm volatile("vcvtph2ps %xmm2, %ymm1");
4439         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
4440         asm volatile("vcvtph2psx %ymm2, %zmm1");
4441         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %zmm1");
4442         asm volatile("vcvtph2psx %xmm2, %xmm1");
4443         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %xmm1");
4444         asm volatile("vcvtph2psx %xmm2, %ymm1");
4445         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %ymm1");
4446         asm volatile("vcvtph2qq %xmm2, %zmm1");
4447         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %zmm1");
4448         asm volatile("vcvtph2qq %xmm2, %xmm1");
4449         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %xmm1");
4450         asm volatile("vcvtph2qq %xmm2, %ymm1");
4451         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %ymm1");
4452         asm volatile("vcvtph2udq %ymm2, %zmm1");
4453         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %zmm1");
4454         asm volatile("vcvtph2udq %xmm2, %xmm1");
4455         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %xmm1");
4456         asm volatile("vcvtph2udq %xmm2, %ymm1");
4457         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %ymm1");
4458         asm volatile("vcvtph2uqq %xmm2, %zmm1");
4459         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
4460         asm volatile("vcvtph2uqq %xmm2, %xmm1");
4461         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
4462         asm volatile("vcvtph2uqq %xmm2, %ymm1");
4463         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
4464         asm volatile("vcvtph2uw %zmm2, %zmm1");
4465         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %zmm1");
4466         asm volatile("vcvtph2uw %xmm2, %xmm1");
4467         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %xmm1");
4468         asm volatile("vcvtph2uw %ymm2, %ymm1");
4469         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %ymm1");
4470         asm volatile("vcvtph2w %zmm2, %zmm1");
4471         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %zmm1");
4472         asm volatile("vcvtph2w %xmm2, %xmm1");
4473         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %xmm1");
4474         asm volatile("vcvtph2w %ymm2, %ymm1");
4475         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %ymm1");
4476         asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%eax,%ecx,8)");
4477         asm volatile("vcvtps2ph $0x12, %zmm2, %ymm1");
4478         asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%eax,%ecx,8)");
4479         asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%eax,%ecx,8)");
4480         asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
4481         asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
4482         asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
4483         asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%eax,%ecx,8)");
4484         asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
4485         asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%eax,%ecx,8)");
4486         asm volatile("vcvtps2phx %zmm2, %ymm1");
4487         asm volatile("vcvtps2phx 0x12345678(%eax,%ecx,8), %ymm1");
4488         asm volatile("vcvtps2phx %xmm2, %xmm1");
4489         asm volatile("vcvtps2phx %ymm2, %xmm1");
4490         asm volatile("vcvtqq2ph %zmm2, %xmm1");
4491         asm volatile("vcvtqq2ph %xmm2, %xmm1");
4492         asm volatile("vcvtqq2ph %ymm2, %xmm1");
4493         asm volatile("vcvtsd2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4494         asm volatile("vcvtsh2sd 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4495         asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %eax");
4496         asm volatile("vcvtsh2ss 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4497         asm volatile("vcvtsh2usi %xmm1, %eax");
4498         asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %eax");
4499         asm volatile("vcvtsi2sh %eax, %xmm2, %xmm1");
4500         asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4501         asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4502         asm volatile("vcvtss2sh %xmm3, %xmm2, %xmm1");
4503         asm volatile("vcvtss2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4504         asm volatile("vcvttph2dq %ymm2, %zmm1");
4505         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %zmm1");
4506         asm volatile("vcvttph2dq %xmm2, %xmm1");
4507         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %xmm1");
4508         asm volatile("vcvttph2dq %xmm2, %ymm1");
4509         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %ymm1");
4510         asm volatile("vcvttph2qq %xmm2, %zmm1");
4511         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %zmm1");
4512         asm volatile("vcvttph2qq %xmm2, %xmm1");
4513         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %xmm1");
4514         asm volatile("vcvttph2qq %xmm2, %ymm1");
4515         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %ymm1");
4516         asm volatile("vcvttph2udq %ymm2, %zmm1");
4517         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %zmm1");
4518         asm volatile("vcvttph2udq %xmm2, %xmm1");
4519         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %xmm1");
4520         asm volatile("vcvttph2udq %xmm2, %ymm1");
4521         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %ymm1");
4522         asm volatile("vcvttph2uqq %xmm2, %zmm1");
4523         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
4524         asm volatile("vcvttph2uqq %xmm2, %xmm1");
4525         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
4526         asm volatile("vcvttph2uqq %xmm2, %ymm1");
4527         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
4528         asm volatile("vcvttph2uw %zmm2, %zmm1");
4529         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %zmm1");
4530         asm volatile("vcvttph2uw %xmm2, %xmm1");
4531         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %xmm1");
4532         asm volatile("vcvttph2uw %ymm2, %ymm1");
4533         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %ymm1");
4534         asm volatile("vcvttph2w %zmm2, %zmm1");
4535         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %zmm1");
4536         asm volatile("vcvttph2w %xmm2, %xmm1");
4537         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %xmm1");
4538         asm volatile("vcvttph2w %ymm2, %ymm1");
4539         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %ymm1");
4540         asm volatile("vcvttsh2si %xmm1, %eax");
4541         asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %eax");
4542         asm volatile("vcvttsh2usi %xmm1, %eax");
4543         asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %eax");
4544         asm volatile("vcvtudq2ph %zmm2, %ymm1");
4545         asm volatile("vcvtudq2ph 0x12345678(%eax,%ecx,8), %ymm1");
4546         asm volatile("vcvtudq2ph %xmm2, %xmm1");
4547         asm volatile("vcvtudq2ph %ymm2, %xmm1");
4548         asm volatile("vcvtuqq2ph %zmm2, %xmm1");
4549         asm volatile("vcvtuqq2ph %xmm2, %xmm1");
4550         asm volatile("vcvtuqq2ph %ymm2, %xmm1");
4551         asm volatile("vcvtusi2sh %eax, %xmm2, %xmm1");
4552         asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4553         asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4554         asm volatile("vcvtuw2ph %zmm2, %zmm1");
4555         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %zmm1");
4556         asm volatile("vcvtuw2ph %xmm2, %xmm1");
4557         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %xmm1");
4558         asm volatile("vcvtuw2ph %ymm2, %ymm1");
4559         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %ymm1");
4560         asm volatile("vcvtw2ph %zmm2, %zmm1");
4561         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %zmm1");
4562         asm volatile("vcvtw2ph %xmm2, %xmm1");
4563         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %xmm1");
4564         asm volatile("vcvtw2ph %ymm2, %ymm1");
4565         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %ymm1");
4566         asm volatile("vdivph %zmm3, %zmm2, %zmm1");
4567         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4568         asm volatile("vdivph %xmm3, %xmm2, %xmm1");
4569         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4570         asm volatile("vdivph %ymm3, %ymm2, %ymm1");
4571         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4572         asm volatile("vdivsh %xmm3, %xmm2, %xmm1");
4573         asm volatile("vdivsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4574         asm volatile("vfcmaddcph %zmm3, %zmm2, %zmm1");
4575         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4576         asm volatile("vfcmaddcph %xmm3, %xmm2, %xmm1");
4577         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4578         asm volatile("vfcmaddcph %ymm3, %ymm2, %ymm1");
4579         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4580         asm volatile("vfcmaddcsh %xmm3, %xmm2, %xmm1");
4581         asm volatile("vfcmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4582         asm volatile("vfcmulcph %zmm3, %zmm2, %zmm1");
4583         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4584         asm volatile("vfcmulcph %xmm3, %xmm2, %xmm1");
4585         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4586         asm volatile("vfcmulcph %ymm3, %ymm2, %ymm1");
4587         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4588         asm volatile("vfcmulcsh %xmm3, %xmm2, %xmm1");
4589         asm volatile("vfcmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4590         asm volatile("vfmadd132ph %zmm3, %zmm2, %zmm1");
4591         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4592         asm volatile("vfmadd132ph %xmm3, %xmm2, %xmm1");
4593         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4594         asm volatile("vfmadd132ph %ymm3, %ymm2, %ymm1");
4595         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4596         asm volatile("vfmadd132sh %xmm3, %xmm2, %xmm1");
4597         asm volatile("vfmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4598         asm volatile("vfmadd213ph %zmm3, %zmm2, %zmm1");
4599         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4600         asm volatile("vfmadd213ph %xmm3, %xmm2, %xmm1");
4601         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4602         asm volatile("vfmadd213ph %ymm3, %ymm2, %ymm1");
4603         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4604         asm volatile("vfmadd213sh %xmm3, %xmm2, %xmm1");
4605         asm volatile("vfmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4606         asm volatile("vfmadd231ph %zmm3, %zmm2, %zmm1");
4607         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4608         asm volatile("vfmadd231ph %xmm3, %xmm2, %xmm1");
4609         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4610         asm volatile("vfmadd231ph %ymm3, %ymm2, %ymm1");
4611         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4612         asm volatile("vfmadd231sh %xmm3, %xmm2, %xmm1");
4613         asm volatile("vfmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4614         asm volatile("vfmaddcph %zmm3, %zmm2, %zmm1");
4615         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4616         asm volatile("vfmaddcph %xmm3, %xmm2, %xmm1");
4617         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4618         asm volatile("vfmaddcph %ymm3, %ymm2, %ymm1");
4619         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4620         asm volatile("vfmaddcsh %xmm3, %xmm2, %xmm1");
4621         asm volatile("vfmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4622         asm volatile("vfmaddsub132ph %zmm3, %zmm2, %zmm1");
4623         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4624         asm volatile("vfmaddsub132ph %xmm3, %xmm2, %xmm1");
4625         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4626         asm volatile("vfmaddsub132ph %ymm3, %ymm2, %ymm1");
4627         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4628         asm volatile("vfmaddsub213ph %zmm3, %zmm2, %zmm1");
4629         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4630         asm volatile("vfmaddsub213ph %xmm3, %xmm2, %xmm1");
4631         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4632         asm volatile("vfmaddsub213ph %ymm3, %ymm2, %ymm1");
4633         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4634         asm volatile("vfmaddsub231ph %zmm3, %zmm2, %zmm1");
4635         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4636         asm volatile("vfmaddsub231ph %xmm3, %xmm2, %xmm1");
4637         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4638         asm volatile("vfmaddsub231ph %ymm3, %ymm2, %ymm1");
4639         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4640         asm volatile("vfmsub132ph %zmm3, %zmm2, %zmm1");
4641         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4642         asm volatile("vfmsub132ph %xmm3, %xmm2, %xmm1");
4643         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4644         asm volatile("vfmsub132ph %ymm3, %ymm2, %ymm1");
4645         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4646         asm volatile("vfmsub132sh %xmm3, %xmm2, %xmm1");
4647         asm volatile("vfmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4648         asm volatile("vfmsub213ph %zmm3, %zmm2, %zmm1");
4649         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4650         asm volatile("vfmsub213ph %xmm3, %xmm2, %xmm1");
4651         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4652         asm volatile("vfmsub213ph %ymm3, %ymm2, %ymm1");
4653         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4654         asm volatile("vfmsub213sh %xmm3, %xmm2, %xmm1");
4655         asm volatile("vfmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4656         asm volatile("vfmsub231ph %zmm3, %zmm2, %zmm1");
4657         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4658         asm volatile("vfmsub231ph %xmm3, %xmm2, %xmm1");
4659         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4660         asm volatile("vfmsub231ph %ymm3, %ymm2, %ymm1");
4661         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4662         asm volatile("vfmsub231sh %xmm3, %xmm2, %xmm1");
4663         asm volatile("vfmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4664         asm volatile("vfmsubadd132ph %zmm3, %zmm2, %zmm1");
4665         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4666         asm volatile("vfmsubadd132ph %xmm3, %xmm2, %xmm1");
4667         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4668         asm volatile("vfmsubadd132ph %ymm3, %ymm2, %ymm1");
4669         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4670         asm volatile("vfmsubadd213ph %zmm3, %zmm2, %zmm1");
4671         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4672         asm volatile("vfmsubadd213ph %xmm3, %xmm2, %xmm1");
4673         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4674         asm volatile("vfmsubadd213ph %ymm3, %ymm2, %ymm1");
4675         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4676         asm volatile("vfmsubadd231ph %zmm3, %zmm2, %zmm1");
4677         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4678         asm volatile("vfmsubadd231ph %xmm3, %xmm2, %xmm1");
4679         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4680         asm volatile("vfmsubadd231ph %ymm3, %ymm2, %ymm1");
4681         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4682         asm volatile("vfmulcph %zmm3, %zmm2, %zmm1");
4683         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4684         asm volatile("vfmulcph %xmm3, %xmm2, %xmm1");
4685         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4686         asm volatile("vfmulcph %ymm3, %ymm2, %ymm1");
4687         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4688         asm volatile("vfmulcsh %xmm3, %xmm2, %xmm1");
4689         asm volatile("vfmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4690         asm volatile("vfnmadd132ph %zmm3, %zmm2, %zmm1");
4691         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4692         asm volatile("vfnmadd132ph %xmm3, %xmm2, %xmm1");
4693         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4694         asm volatile("vfnmadd132ph %ymm3, %ymm2, %ymm1");
4695         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4696         asm volatile("vfnmadd132sh %xmm3, %xmm2, %xmm1");
4697         asm volatile("vfnmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4698         asm volatile("vfnmadd213ph %zmm3, %zmm2, %zmm1");
4699         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4700         asm volatile("vfnmadd213ph %xmm3, %xmm2, %xmm1");
4701         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4702         asm volatile("vfnmadd213ph %ymm3, %ymm2, %ymm1");
4703         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4704         asm volatile("vfnmadd213sh %xmm3, %xmm2, %xmm1");
4705         asm volatile("vfnmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4706         asm volatile("vfnmadd231ph %zmm3, %zmm2, %zmm1");
4707         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4708         asm volatile("vfnmadd231ph %xmm3, %xmm2, %xmm1");
4709         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4710         asm volatile("vfnmadd231ph %ymm3, %ymm2, %ymm1");
4711         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4712         asm volatile("vfnmadd231sh %xmm3, %xmm2, %xmm1");
4713         asm volatile("vfnmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4714         asm volatile("vfnmsub132ph %zmm3, %zmm2, %zmm1");
4715         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4716         asm volatile("vfnmsub132ph %xmm3, %xmm2, %xmm1");
4717         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4718         asm volatile("vfnmsub132ph %ymm3, %ymm2, %ymm1");
4719         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4720         asm volatile("vfnmsub132sh %xmm3, %xmm2, %xmm1");
4721         asm volatile("vfnmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4722         asm volatile("vfnmsub213ph %zmm3, %zmm2, %zmm1");
4723         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4724         asm volatile("vfnmsub213ph %xmm3, %xmm2, %xmm1");
4725         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4726         asm volatile("vfnmsub213ph %ymm3, %ymm2, %ymm1");
4727         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4728         asm volatile("vfnmsub213sh %xmm3, %xmm2, %xmm1");
4729         asm volatile("vfnmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4730         asm volatile("vfnmsub231ph %zmm3, %zmm2, %zmm1");
4731         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4732         asm volatile("vfnmsub231ph %xmm3, %xmm2, %xmm1");
4733         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4734         asm volatile("vfnmsub231ph %ymm3, %ymm2, %ymm1");
4735         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4736         asm volatile("vfnmsub231sh %xmm3, %xmm2, %xmm1");
4737         asm volatile("vfnmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4738         asm volatile("vfpclassph $0x12, %zmm1, %k5");
4739         asm volatile("vfpclassph $0x12, %xmm1, %k5");
4740         asm volatile("vfpclassph $0x12, %ymm1, %k5");
4741         asm volatile("vfpclasssh $0x12, %xmm1, %k5");
4742         asm volatile("vfpclasssh $0x12, 0x12345678(%eax,%ecx,8), %k5");
4743         asm volatile("vgetexpph %zmm2, %zmm1");
4744         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %zmm1");
4745         asm volatile("vgetexpph %xmm2, %xmm1");
4746         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %xmm1");
4747         asm volatile("vgetexpph %ymm2, %ymm1");
4748         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %ymm1");
4749         asm volatile("vgetexpsh %xmm3, %xmm2, %xmm1");
4750         asm volatile("vgetexpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4751         asm volatile("vgetmantph $0x12, %zmm2, %zmm1");
4752         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
4753         asm volatile("vgetmantph $0x12, %xmm2, %xmm1");
4754         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
4755         asm volatile("vgetmantph $0x12, %ymm2, %ymm1");
4756         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
4757         asm volatile("vgetmantsh $0x12, %xmm3, %xmm2, %xmm1");
4758         asm volatile("vgetmantsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4759         asm volatile("vmaxph %zmm3, %zmm2, %zmm1");
4760         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4761         asm volatile("vmaxph %xmm3, %xmm2, %xmm1");
4762         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4763         asm volatile("vmaxph %ymm3, %ymm2, %ymm1");
4764         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4765         asm volatile("vmaxsh %xmm3, %xmm2, %xmm1");
4766         asm volatile("vmaxsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4767         asm volatile("vminph %zmm3, %zmm2, %zmm1");
4768         asm volatile("vminph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4769         asm volatile("vminph %xmm3, %xmm2, %xmm1");
4770         asm volatile("vminph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4771         asm volatile("vminph %ymm3, %ymm2, %ymm1");
4772         asm volatile("vminph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4773         asm volatile("vminsh %xmm3, %xmm2, %xmm1");
4774         asm volatile("vminsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4775         asm volatile("vmovsh %xmm1, 0x12345678(%eax,%ecx,8)");
4776         asm volatile("vmovsh 0x12345678(%eax,%ecx,8), %xmm1");
4777         asm volatile("vmovsh %xmm3, %xmm2, %xmm1");
4778         asm volatile("vmovw %xmm1, %eax");
4779         asm volatile("vmovw %xmm1, 0x12345678(%eax,%ecx,8)");
4780         asm volatile("vmovw %eax, %xmm1");
4781         asm volatile("vmovw 0x12345678(%eax,%ecx,8), %xmm1");
4782         asm volatile("vmulph %zmm3, %zmm2, %zmm1");
4783         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4784         asm volatile("vmulph %xmm3, %xmm2, %xmm1");
4785         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4786         asm volatile("vmulph %ymm3, %ymm2, %ymm1");
4787         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4788         asm volatile("vmulsh %xmm3, %xmm2, %xmm1");
4789         asm volatile("vmulsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4790         asm volatile("vrcpph %zmm2, %zmm1");
4791         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %zmm1");
4792         asm volatile("vrcpph %xmm2, %xmm1");
4793         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %xmm1");
4794         asm volatile("vrcpph %ymm2, %ymm1");
4795         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %ymm1");
4796         asm volatile("vrcpsh %xmm3, %xmm2, %xmm1");
4797         asm volatile("vrcpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4798         asm volatile("vreduceph $0x12, %zmm2, %zmm1");
4799         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
4800         asm volatile("vreduceph $0x12, %xmm2, %xmm1");
4801         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
4802         asm volatile("vreduceph $0x12, %ymm2, %ymm1");
4803         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
4804         asm volatile("vreducesh $0x12, %xmm3, %xmm2, %xmm1");
4805         asm volatile("vreducesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4806         asm volatile("vrndscaleph $0x12, %zmm2, %zmm1");
4807         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
4808         asm volatile("vrndscaleph $0x12, %xmm2, %xmm1");
4809         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
4810         asm volatile("vrndscaleph $0x12, %ymm2, %ymm1");
4811         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
4812         asm volatile("vrndscalesh $0x12, %xmm3, %xmm2, %xmm1");
4813         asm volatile("vrndscalesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4814         asm volatile("vrsqrtph %zmm2, %zmm1");
4815         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
4816         asm volatile("vrsqrtph %xmm2, %xmm1");
4817         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
4818         asm volatile("vrsqrtph %ymm2, %ymm1");
4819         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
4820         asm volatile("vrsqrtsh %xmm3, %xmm2, %xmm1");
4821         asm volatile("vrsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4822         asm volatile("vscalefph %zmm3, %zmm2, %zmm1");
4823         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4824         asm volatile("vscalefph %xmm3, %xmm2, %xmm1");
4825         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4826         asm volatile("vscalefph %ymm3, %ymm2, %ymm1");
4827         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4828         asm volatile("vscalefsh %xmm3, %xmm2, %xmm1");
4829         asm volatile("vscalefsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4830         asm volatile("vsqrtph %zmm2, %zmm1");
4831         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
4832         asm volatile("vsqrtph %xmm2, %xmm1");
4833         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
4834         asm volatile("vsqrtph %ymm2, %ymm1");
4835         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
4836         asm volatile("vsqrtsh %xmm3, %xmm2, %xmm1");
4837         asm volatile("vsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4838         asm volatile("vsubph %zmm3, %zmm2, %zmm1");
4839         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4840         asm volatile("vsubph %xmm3, %xmm2, %xmm1");
4841         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4842         asm volatile("vsubph %ymm3, %ymm2, %ymm1");
4843         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4844         asm volatile("vsubsh %xmm3, %xmm2, %xmm1");
4845         asm volatile("vsubsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4846         asm volatile("vucomish %xmm2, %xmm1");
4847         asm volatile("vucomish 0x12345678(%eax,%ecx,8), %xmm1");
4848
4849 #endif /* #ifndef __x86_64__ */
4850
4851         /* Prediction history reset */
4852
4853         asm volatile("hreset $0");
4854
4855         /* Serialize instruction execution */
4856
4857         asm volatile("serialize");
4858
4859         /* TSX suspend load address tracking */
4860
4861         asm volatile("xresldtrk");
4862         asm volatile("xsusldtrk");
4863
4864         /* SGX */
4865
4866         asm volatile("encls");
4867         asm volatile("enclu");
4868         asm volatile("enclv");
4869
4870         /* pconfig */
4871
4872         asm volatile("pconfig");
4873
4874         /* wbnoinvd */
4875
4876         asm volatile("wbnoinvd");
4877
4878         /* Following line is a marker for the awk script - do not change */
4879         asm volatile("rdtsc"); /* Stop here */
4880
4881         return 0;
4882 }
This page took 0.340882 seconds and 4 git commands to generate.