Merge tag 'soc-ep93xx-dt-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-block.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         /* Key Locker */
2632
2633         asm volatile("loadiwkey %xmm1, %xmm2");
2634         asm volatile("encodekey128 %eax, %edx");
2635         asm volatile("encodekey256 %eax, %edx");
2636         asm volatile("aesenc128kl 0x77(%rdx), %xmm3");
2637         asm volatile("aesenc256kl 0x77(%rdx), %xmm3");
2638         asm volatile("aesdec128kl 0x77(%rdx), %xmm3");
2639         asm volatile("aesdec256kl 0x77(%rdx), %xmm3");
2640         asm volatile("aesencwide128kl   0x77(%rdx)");
2641         asm volatile("aesencwide256kl   0x77(%rdx)");
2642         asm volatile("aesdecwide128kl   0x77(%rdx)");
2643         asm volatile("aesdecwide256kl   0x77(%rdx)");
2644
2645         /* Remote Atomic Operations */
2646
2647         asm volatile("aadd %ecx,(%rax)");
2648         asm volatile("aadd %edx,(%r8)");
2649         asm volatile("aadd %edx,0x12345678(%rax,%rcx,8)");
2650         asm volatile("aadd %edx,0x12345678(%r8,%rcx,8)");
2651         asm volatile("aadd %rcx,(%rax)");
2652         asm volatile("aadd %rdx,(%r8)");
2653         asm volatile("aadd %rdx,(0x12345678)");
2654         asm volatile("aadd %rdx,0x12345678(%rax,%rcx,8)");
2655         asm volatile("aadd %rdx,0x12345678(%r8,%rcx,8)");
2656
2657         asm volatile("aand %ecx,(%rax)");
2658         asm volatile("aand %edx,(%r8)");
2659         asm volatile("aand %edx,0x12345678(%rax,%rcx,8)");
2660         asm volatile("aand %edx,0x12345678(%r8,%rcx,8)");
2661         asm volatile("aand %rcx,(%rax)");
2662         asm volatile("aand %rdx,(%r8)");
2663         asm volatile("aand %rdx,(0x12345678)");
2664         asm volatile("aand %rdx,0x12345678(%rax,%rcx,8)");
2665         asm volatile("aand %rdx,0x12345678(%r8,%rcx,8)");
2666
2667         asm volatile("aor %ecx,(%rax)");
2668         asm volatile("aor %edx,(%r8)");
2669         asm volatile("aor %edx,0x12345678(%rax,%rcx,8)");
2670         asm volatile("aor %edx,0x12345678(%r8,%rcx,8)");
2671         asm volatile("aor %rcx,(%rax)");
2672         asm volatile("aor %rdx,(%r8)");
2673         asm volatile("aor %rdx,(0x12345678)");
2674         asm volatile("aor %rdx,0x12345678(%rax,%rcx,8)");
2675         asm volatile("aor %rdx,0x12345678(%r8,%rcx,8)");
2676
2677         asm volatile("axor %ecx,(%rax)");
2678         asm volatile("axor %edx,(%r8)");
2679         asm volatile("axor %edx,0x12345678(%rax,%rcx,8)");
2680         asm volatile("axor %edx,0x12345678(%r8,%rcx,8)");
2681         asm volatile("axor %rcx,(%rax)");
2682         asm volatile("axor %rdx,(%r8)");
2683         asm volatile("axor %rdx,(0x12345678)");
2684         asm volatile("axor %rdx,0x12345678(%rax,%rcx,8)");
2685         asm volatile("axor %rdx,0x12345678(%r8,%rcx,8)");
2686
2687         /* VEX CMPxxXADD */
2688
2689         asm volatile("cmpbexadd %ebx,%ecx,(%r9)");
2690         asm volatile("cmpbxadd %ebx,%ecx,(%r9)");
2691         asm volatile("cmplexadd %ebx,%ecx,(%r9)");
2692         asm volatile("cmplxadd %ebx,%ecx,(%r9)");
2693         asm volatile("cmpnbexadd %ebx,%ecx,(%r9)");
2694         asm volatile("cmpnbxadd %ebx,%ecx,(%r9)");
2695         asm volatile("cmpnlexadd %ebx,%ecx,(%r9)");
2696         asm volatile("cmpnlxadd %ebx,%ecx,(%r9)");
2697         asm volatile("cmpnoxadd %ebx,%ecx,(%r9)");
2698         asm volatile("cmpnpxadd %ebx,%ecx,(%r9)");
2699         asm volatile("cmpnsxadd %ebx,%ecx,(%r9)");
2700         asm volatile("cmpnzxadd %ebx,%ecx,(%r9)");
2701         asm volatile("cmpoxadd %ebx,%ecx,(%r9)");
2702         asm volatile("cmppxadd %ebx,%ecx,(%r9)");
2703         asm volatile("cmpsxadd %ebx,%ecx,(%r9)");
2704         asm volatile("cmpzxadd %ebx,%ecx,(%r9)");
2705
2706         /* Pre-fetch */
2707
2708         asm volatile("prefetch (%rax)");
2709         asm volatile("prefetcht0 (%rax)");
2710         asm volatile("prefetcht1 (%rax)");
2711         asm volatile("prefetcht2 (%rax)");
2712         asm volatile("prefetchnta (%rax)");
2713         asm volatile("prefetchit0 0x12345678(%rip)");
2714         asm volatile("prefetchit1 0x12345678(%rip)");
2715
2716         /* MSR List */
2717
2718         asm volatile("rdmsrlist");
2719         asm volatile("wrmsrlist");
2720
2721         /* User Read/Write MSR */
2722
2723         asm volatile("urdmsr %rdx,%rax");
2724         asm volatile("urdmsr %rdx,%r22");
2725         asm volatile("urdmsr $0x7f,%r12");
2726         asm volatile("uwrmsr %rax,%rdx");
2727         asm volatile("uwrmsr %r22,%rdx");
2728         asm volatile("uwrmsr %r12,$0x7f");
2729
2730         /* AVX NE Convert */
2731
2732         asm volatile("vbcstnebf162ps (%rcx),%xmm6");
2733         asm volatile("vbcstnesh2ps (%rcx),%xmm6");
2734         asm volatile("vcvtneebf162ps (%rcx),%xmm6");
2735         asm volatile("vcvtneeph2ps (%rcx),%xmm6");
2736         asm volatile("vcvtneobf162ps (%rcx),%xmm6");
2737         asm volatile("vcvtneoph2ps (%rcx),%xmm6");
2738         asm volatile("vcvtneps2bf16 %xmm1,%xmm6");
2739
2740         /* FRED */
2741
2742         asm volatile("erets");  /* Expecting: erets indirect 0 */
2743         asm volatile("eretu");  /* Expecting: eretu indirect 0 */
2744
2745         /* AMX Complex */
2746
2747         asm volatile("tcmmimfp16ps %tmm1,%tmm2,%tmm3");
2748         asm volatile("tcmmrlfp16ps %tmm1,%tmm2,%tmm3");
2749
2750         /* AMX FP16 */
2751
2752         asm volatile("tdpfp16ps %tmm1,%tmm2,%tmm3");
2753
2754         /* REX2 */
2755
2756         asm volatile("test $0x5, %r18b");
2757         asm volatile("test $0x5, %r18d");
2758         asm volatile("test $0x5, %r18");
2759         asm volatile("test $0x5, %r18w");
2760         asm volatile("imull %eax, %r14d");
2761         asm volatile("imull %eax, %r17d");
2762         asm volatile("punpckldq (%r18), %mm2");
2763         asm volatile("leal (%rax), %r16d");
2764         asm volatile("leal (%rax), %r31d");
2765         asm volatile("leal (,%r16), %eax");
2766         asm volatile("leal (,%r31), %eax");
2767         asm volatile("leal (%r16), %eax");
2768         asm volatile("leal (%r31), %eax");
2769         asm volatile("leaq (%rax), %r15");
2770         asm volatile("leaq (%rax), %r16");
2771         asm volatile("leaq (%r15), %rax");
2772         asm volatile("leaq (%r16), %rax");
2773         asm volatile("leaq (,%r15), %rax");
2774         asm volatile("leaq (,%r16), %rax");
2775         asm volatile("add (%r16), %r8");
2776         asm volatile("add (%r16), %r15");
2777         asm volatile("mov (,%r9), %r16");
2778         asm volatile("mov (,%r14), %r16");
2779         asm volatile("sub (%r10), %r31");
2780         asm volatile("sub (%r13), %r31");
2781         asm volatile("leal 1(%r16, %r21), %eax");
2782         asm volatile("leal 1(%r16, %r26), %r31d");
2783         asm volatile("leal 129(%r21, %r9), %eax");
2784         asm volatile("leal 129(%r26, %r9), %r31d");
2785         /*
2786          * Have to use .byte for jmpabs because gas does not support the
2787          * mnemonic for some reason, but then it also gets the source line wrong
2788          * with .byte, so the following is a workaround.
2789          */
2790         asm volatile(""); /* Expecting: jmp indirect 0 */
2791         asm volatile(".byte 0xd5, 0x00, 0xa1, 0xef, 0xcd, 0xab, 0x90, 0x78, 0x56, 0x34, 0x12");
2792         asm volatile("pushp %rbx");
2793         asm volatile("pushp %r16");
2794         asm volatile("pushp %r31");
2795         asm volatile("popp %r31");
2796         asm volatile("popp %r16");
2797         asm volatile("popp %rbx");
2798
2799         /* APX */
2800
2801         asm volatile("bextr %r25d,%edx,%r10d");
2802         asm volatile("bextr %r25d,0x123(%r31,%rax,4),%edx");
2803         asm volatile("bextr %r31,%r15,%r11");
2804         asm volatile("bextr %r31,0x123(%r31,%rax,4),%r15");
2805         asm volatile("blsi %r25d,%edx");
2806         asm volatile("blsi %r31,%r15");
2807         asm volatile("blsi 0x123(%r31,%rax,4),%r25d");
2808         asm volatile("blsi 0x123(%r31,%rax,4),%r31");
2809         asm volatile("blsmsk %r25d,%edx");
2810         asm volatile("blsmsk %r31,%r15");
2811         asm volatile("blsmsk 0x123(%r31,%rax,4),%r25d");
2812         asm volatile("blsmsk 0x123(%r31,%rax,4),%r31");
2813         asm volatile("blsr %r25d,%edx");
2814         asm volatile("blsr %r31,%r15");
2815         asm volatile("blsr 0x123(%r31,%rax,4),%r25d");
2816         asm volatile("blsr 0x123(%r31,%rax,4),%r31");
2817         asm volatile("bzhi %r25d,%edx,%r10d");
2818         asm volatile("bzhi %r25d,0x123(%r31,%rax,4),%edx");
2819         asm volatile("bzhi %r31,%r15,%r11");
2820         asm volatile("bzhi %r31,0x123(%r31,%rax,4),%r15");
2821         asm volatile("cmpbexadd %r25d,%edx,0x123(%r31,%rax,4)");
2822         asm volatile("cmpbexadd %r31,%r15,0x123(%r31,%rax,4)");
2823         asm volatile("cmpbxadd %r25d,%edx,0x123(%r31,%rax,4)");
2824         asm volatile("cmpbxadd %r31,%r15,0x123(%r31,%rax,4)");
2825         asm volatile("cmplxadd %r25d,%edx,0x123(%r31,%rax,4)");
2826         asm volatile("cmplxadd %r31,%r15,0x123(%r31,%rax,4)");
2827         asm volatile("cmpnbexadd %r25d,%edx,0x123(%r31,%rax,4)");
2828         asm volatile("cmpnbexadd %r31,%r15,0x123(%r31,%rax,4)");
2829         asm volatile("cmpnbxadd %r25d,%edx,0x123(%r31,%rax,4)");
2830         asm volatile("cmpnbxadd %r31,%r15,0x123(%r31,%rax,4)");
2831         asm volatile("cmpnlexadd %r25d,%edx,0x123(%r31,%rax,4)");
2832         asm volatile("cmpnlexadd %r31,%r15,0x123(%r31,%rax,4)");
2833         asm volatile("cmpnlxadd %r25d,%edx,0x123(%r31,%rax,4)");
2834         asm volatile("cmpnlxadd %r31,%r15,0x123(%r31,%rax,4)");
2835         asm volatile("cmpnoxadd %r25d,%edx,0x123(%r31,%rax,4)");
2836         asm volatile("cmpnoxadd %r31,%r15,0x123(%r31,%rax,4)");
2837         asm volatile("cmpnpxadd %r25d,%edx,0x123(%r31,%rax,4)");
2838         asm volatile("cmpnpxadd %r31,%r15,0x123(%r31,%rax,4)");
2839         asm volatile("cmpnsxadd %r25d,%edx,0x123(%r31,%rax,4)");
2840         asm volatile("cmpnsxadd %r31,%r15,0x123(%r31,%rax,4)");
2841         asm volatile("cmpnzxadd %r25d,%edx,0x123(%r31,%rax,4)");
2842         asm volatile("cmpnzxadd %r31,%r15,0x123(%r31,%rax,4)");
2843         asm volatile("cmpoxadd %r25d,%edx,0x123(%r31,%rax,4)");
2844         asm volatile("cmpoxadd %r31,%r15,0x123(%r31,%rax,4)");
2845         asm volatile("cmppxadd %r25d,%edx,0x123(%r31,%rax,4)");
2846         asm volatile("cmppxadd %r31,%r15,0x123(%r31,%rax,4)");
2847         asm volatile("cmpsxadd %r25d,%edx,0x123(%r31,%rax,4)");
2848         asm volatile("cmpsxadd %r31,%r15,0x123(%r31,%rax,4)");
2849         asm volatile("cmpzxadd %r25d,%edx,0x123(%r31,%rax,4)");
2850         asm volatile("cmpzxadd %r31,%r15,0x123(%r31,%rax,4)");
2851         asm volatile("crc32q %r31, %r22");
2852         asm volatile("crc32q (%r31), %r22");
2853         asm volatile("crc32b %r19b, %r17");
2854         asm volatile("crc32b %r19b, %r21d");
2855         asm volatile("crc32b (%r19),%ebx");
2856         asm volatile("crc32l %r31d, %r23d");
2857         asm volatile("crc32l (%r31), %r23d");
2858         asm volatile("crc32w %r31w, %r21d");
2859         asm volatile("crc32w (%r31),%r21d");
2860         asm volatile("crc32 %rax, %r18");
2861         asm volatile("enqcmd 0x123(%r31d,%eax,4),%r25d");
2862         asm volatile("enqcmd 0x123(%r31,%rax,4),%r31");
2863         asm volatile("enqcmds 0x123(%r31d,%eax,4),%r25d");
2864         asm volatile("enqcmds 0x123(%r31,%rax,4),%r31");
2865         asm volatile("invept 0x123(%r31,%rax,4),%r31");
2866         asm volatile("invpcid 0x123(%r31,%rax,4),%r31");
2867         asm volatile("invvpid 0x123(%r31,%rax,4),%r31");
2868         asm volatile("kmovb %k5,%r25d");
2869         asm volatile("kmovb %k5,0x123(%r31,%rax,4)");
2870         asm volatile("kmovb %r25d,%k5");
2871         asm volatile("kmovb 0x123(%r31,%rax,4),%k5");
2872         asm volatile("kmovd %k5,%r25d");
2873         asm volatile("kmovd %k5,0x123(%r31,%rax,4)");
2874         asm volatile("kmovd %r25d,%k5");
2875         asm volatile("kmovd 0x123(%r31,%rax,4),%k5");
2876         asm volatile("kmovq %k5,%r31");
2877         asm volatile("kmovq %k5,0x123(%r31,%rax,4)");
2878         asm volatile("kmovq %r31,%k5");
2879         asm volatile("kmovq 0x123(%r31,%rax,4),%k5");
2880         asm volatile("kmovw %k5,%r25d");
2881         asm volatile("kmovw %k5,0x123(%r31,%rax,4)");
2882         asm volatile("kmovw %r25d,%k5");
2883         asm volatile("kmovw 0x123(%r31,%rax,4),%k5");
2884         asm volatile("ldtilecfg 0x123(%r31,%rax,4)");
2885         asm volatile("movbe %r18w,%ax");
2886         asm volatile("movbe %r15w,%ax");
2887         asm volatile("movbe %r18w,0x123(%r16,%rax,4)");
2888         asm volatile("movbe %r18w,0x123(%r31,%rax,4)");
2889         asm volatile("movbe %r25d,%edx");
2890         asm volatile("movbe %r15d,%edx");
2891         asm volatile("movbe %r25d,0x123(%r16,%rax,4)");
2892         asm volatile("movbe %r31,%r15");
2893         asm volatile("movbe %r8,%r15");
2894         asm volatile("movbe %r31,0x123(%r16,%rax,4)");
2895         asm volatile("movbe %r31,0x123(%r31,%rax,4)");
2896         asm volatile("movbe 0x123(%r16,%rax,4),%r31");
2897         asm volatile("movbe 0x123(%r31,%rax,4),%r18w");
2898         asm volatile("movbe 0x123(%r31,%rax,4),%r25d");
2899         asm volatile("movdir64b 0x123(%r31d,%eax,4),%r25d");
2900         asm volatile("movdir64b 0x123(%r31,%rax,4),%r31");
2901         asm volatile("movdiri %r25d,0x123(%r31,%rax,4)");
2902         asm volatile("movdiri %r31,0x123(%r31,%rax,4)");
2903         asm volatile("pdep %r25d,%edx,%r10d");
2904         asm volatile("pdep %r31,%r15,%r11");
2905         asm volatile("pdep 0x123(%r31,%rax,4),%r25d,%edx");
2906         asm volatile("pdep 0x123(%r31,%rax,4),%r31,%r15");
2907         asm volatile("pext %r25d,%edx,%r10d");
2908         asm volatile("pext %r31,%r15,%r11");
2909         asm volatile("pext 0x123(%r31,%rax,4),%r25d,%edx");
2910         asm volatile("pext 0x123(%r31,%rax,4),%r31,%r15");
2911         asm volatile("shlx %r25d,%edx,%r10d");
2912         asm volatile("shlx %r25d,0x123(%r31,%rax,4),%edx");
2913         asm volatile("shlx %r31,%r15,%r11");
2914         asm volatile("shlx %r31,0x123(%r31,%rax,4),%r15");
2915         asm volatile("shrx %r25d,%edx,%r10d");
2916         asm volatile("shrx %r25d,0x123(%r31,%rax,4),%edx");
2917         asm volatile("shrx %r31,%r15,%r11");
2918         asm volatile("shrx %r31,0x123(%r31,%rax,4),%r15");
2919         asm volatile("sttilecfg 0x123(%r31,%rax,4)");
2920         asm volatile("tileloadd 0x123(%r31,%rax,4),%tmm6");
2921         asm volatile("tileloaddt1 0x123(%r31,%rax,4),%tmm6");
2922         asm volatile("tilestored %tmm6,0x123(%r31,%rax,4)");
2923         asm volatile("vbroadcastf128 (%r16),%ymm3");
2924         asm volatile("vbroadcasti128 (%r16),%ymm3");
2925         asm volatile("vextractf128 $1,%ymm3,(%r16)");
2926         asm volatile("vextracti128 $1,%ymm3,(%r16)");
2927         asm volatile("vinsertf128 $1,(%r16),%ymm3,%ymm8");
2928         asm volatile("vinserti128 $1,(%r16),%ymm3,%ymm8");
2929         asm volatile("vroundpd $1,(%r24),%xmm6");
2930         asm volatile("vroundps $2,(%r24),%xmm6");
2931         asm volatile("vroundsd $3,(%r24),%xmm6,%xmm3");
2932         asm volatile("vroundss $4,(%r24),%xmm6,%xmm3");
2933         asm volatile("wrssd %r25d,0x123(%r31,%rax,4)");
2934         asm volatile("wrssq %r31,0x123(%r31,%rax,4)");
2935         asm volatile("wrussd %r25d,0x123(%r31,%rax,4)");
2936         asm volatile("wrussq %r31,0x123(%r31,%rax,4)");
2937
2938         /* APX new data destination */
2939
2940         asm volatile("adc $0x1234,%ax,%r30w");
2941         asm volatile("adc %r15b,%r17b,%r18b");
2942         asm volatile("adc %r15d,(%r8),%r18d");
2943         asm volatile("adc (%r15,%rax,1),%r16b,%r8b");
2944         asm volatile("adc (%r15,%rax,1),%r16w,%r8w");
2945         asm volatile("adcl $0x11,(%r19,%rax,4),%r20d");
2946         asm volatile("adcx %r15d,%r8d,%r18d");
2947         asm volatile("adcx (%r15,%r31,1),%r8");
2948         asm volatile("adcx (%r15,%r31,1),%r8d,%r18d");
2949         asm volatile("add $0x1234,%ax,%r30w");
2950         asm volatile("add $0x12344433,%r15,%r16");
2951         asm volatile("add $0x34,%r13b,%r17b");
2952         asm volatile("add $0xfffffffff4332211,%rax,%r8");
2953         asm volatile("add %r31,%r8,%r16");
2954         asm volatile("add %r31,(%r8),%r16");
2955         asm volatile("add %r31,(%r8,%r16,8),%r16");
2956         asm volatile("add %r31b,%r8b,%r16b");
2957         asm volatile("add %r31d,%r8d,%r16d");
2958         asm volatile("add %r31w,%r8w,%r16w");
2959         asm volatile("add (%r31),%r8,%r16");
2960         asm volatile("add 0x9090(%r31,%r16,1),%r8,%r16");
2961         asm volatile("addb %r31b,%r8b,%r16b");
2962         asm volatile("addl %r31d,%r8d,%r16d");
2963         asm volatile("addl $0x11,(%r19,%rax,4),%r20d");
2964         asm volatile("addq %r31,%r8,%r16");
2965         asm volatile("addq $0x12344433,(%r15,%rcx,4),%r16");
2966         asm volatile("addw %r31w,%r8w,%r16w");
2967         asm volatile("adox %r15d,%r8d,%r18d");
2968         asm volatile("{load} add %r31,%r8,%r16");
2969         asm volatile("{store} add %r31,%r8,%r16");
2970         asm volatile("adox (%r15,%r31,1),%r8");
2971         asm volatile("adox (%r15,%r31,1),%r8d,%r18d");
2972         asm volatile("and $0x1234,%ax,%r30w");
2973         asm volatile("and %r15b,%r17b,%r18b");
2974         asm volatile("and %r15d,(%r8),%r18d");
2975         asm volatile("and (%r15,%rax,1),%r16b,%r8b");
2976         asm volatile("and (%r15,%rax,1),%r16w,%r8w");
2977         asm volatile("andl $0x11,(%r19,%rax,4),%r20d");
2978         asm volatile("cmova 0x90909090(%eax),%edx,%r8d");
2979         asm volatile("cmovae 0x90909090(%eax),%edx,%r8d");
2980         asm volatile("cmovb 0x90909090(%eax),%edx,%r8d");
2981         asm volatile("cmovbe 0x90909090(%eax),%edx,%r8d");
2982         asm volatile("cmove 0x90909090(%eax),%edx,%r8d");
2983         asm volatile("cmovg 0x90909090(%eax),%edx,%r8d");
2984         asm volatile("cmovge 0x90909090(%eax),%edx,%r8d");
2985         asm volatile("cmovl 0x90909090(%eax),%edx,%r8d");
2986         asm volatile("cmovle 0x90909090(%eax),%edx,%r8d");
2987         asm volatile("cmovne 0x90909090(%eax),%edx,%r8d");
2988         asm volatile("cmovno 0x90909090(%eax),%edx,%r8d");
2989         asm volatile("cmovnp 0x90909090(%eax),%edx,%r8d");
2990         asm volatile("cmovns 0x90909090(%eax),%edx,%r8d");
2991         asm volatile("cmovo 0x90909090(%eax),%edx,%r8d");
2992         asm volatile("cmovp 0x90909090(%eax),%edx,%r8d");
2993         asm volatile("cmovs 0x90909090(%eax),%edx,%r8d");
2994         asm volatile("dec %rax,%r17");
2995         asm volatile("decb (%r31,%r12,1),%r8b");
2996         asm volatile("imul 0x909(%rax,%r31,8),%rdx,%r25");
2997         asm volatile("imul 0x90909(%eax),%edx,%r8d");
2998         asm volatile("inc %r31,%r16");
2999         asm volatile("inc %r31,%r8");
3000         asm volatile("inc %rax,%rbx");
3001         asm volatile("neg %rax,%r17");
3002         asm volatile("negb (%r31,%r12,1),%r8b");
3003         asm volatile("not %rax,%r17");
3004         asm volatile("notb (%r31,%r12,1),%r8b");
3005         asm volatile("or $0x1234,%ax,%r30w");
3006         asm volatile("or %r15b,%r17b,%r18b");
3007         asm volatile("or %r15d,(%r8),%r18d");
3008         asm volatile("or (%r15,%rax,1),%r16b,%r8b");
3009         asm volatile("or (%r15,%rax,1),%r16w,%r8w");
3010         asm volatile("orl $0x11,(%r19,%rax,4),%r20d");
3011         asm volatile("rcl $0x2,%r12b,%r31b");
3012         asm volatile("rcl %cl,%r16b,%r8b");
3013         asm volatile("rclb $0x1,(%rax),%r31b");
3014         asm volatile("rcll $0x2,(%rax),%r31d");
3015         asm volatile("rclw $0x1,(%rax),%r31w");
3016         asm volatile("rclw %cl,(%r19,%rax,4),%r31w");
3017         asm volatile("rcr $0x2,%r12b,%r31b");
3018         asm volatile("rcr %cl,%r16b,%r8b");
3019         asm volatile("rcrb $0x1,(%rax),%r31b");
3020         asm volatile("rcrl $0x2,(%rax),%r31d");
3021         asm volatile("rcrw $0x1,(%rax),%r31w");
3022         asm volatile("rcrw %cl,(%r19,%rax,4),%r31w");
3023         asm volatile("rol $0x2,%r12b,%r31b");
3024         asm volatile("rol %cl,%r16b,%r8b");
3025         asm volatile("rolb $0x1,(%rax),%r31b");
3026         asm volatile("roll $0x2,(%rax),%r31d");
3027         asm volatile("rolw $0x1,(%rax),%r31w");
3028         asm volatile("rolw %cl,(%r19,%rax,4),%r31w");
3029         asm volatile("ror $0x2,%r12b,%r31b");
3030         asm volatile("ror %cl,%r16b,%r8b");
3031         asm volatile("rorb $0x1,(%rax),%r31b");
3032         asm volatile("rorl $0x2,(%rax),%r31d");
3033         asm volatile("rorw $0x1,(%rax),%r31w");
3034         asm volatile("rorw %cl,(%r19,%rax,4),%r31w");
3035         asm volatile("sar $0x2,%r12b,%r31b");
3036         asm volatile("sar %cl,%r16b,%r8b");
3037         asm volatile("sarb $0x1,(%rax),%r31b");
3038         asm volatile("sarl $0x2,(%rax),%r31d");
3039         asm volatile("sarw $0x1,(%rax),%r31w");
3040         asm volatile("sarw %cl,(%r19,%rax,4),%r31w");
3041         asm volatile("sbb $0x1234,%ax,%r30w");
3042         asm volatile("sbb %r15b,%r17b,%r18b");
3043         asm volatile("sbb %r15d,(%r8),%r18d");
3044         asm volatile("sbb (%r15,%rax,1),%r16b,%r8b");
3045         asm volatile("sbb (%r15,%rax,1),%r16w,%r8w");
3046         asm volatile("sbbl $0x11,(%r19,%rax,4),%r20d");
3047         asm volatile("shl $0x2,%r12b,%r31b");
3048         asm volatile("shl $0x2,%r12b,%r31b");
3049         asm volatile("shl %cl,%r16b,%r8b");
3050         asm volatile("shl %cl,%r16b,%r8b");
3051         asm volatile("shlb $0x1,(%rax),%r31b");
3052         asm volatile("shlb $0x1,(%rax),%r31b");
3053         asm volatile("shld $0x1,%r12,(%rax),%r31");
3054         asm volatile("shld $0x2,%r15d,(%rax),%r31d");
3055         asm volatile("shld $0x2,%r8w,%r12w,%r31w");
3056         asm volatile("shld %cl,%r12,%r16,%r8");
3057         asm volatile("shld %cl,%r13w,(%r19,%rax,4),%r31w");
3058         asm volatile("shld %cl,%r9w,(%rax),%r31w");
3059         asm volatile("shll $0x2,(%rax),%r31d");
3060         asm volatile("shll $0x2,(%rax),%r31d");
3061         asm volatile("shlw $0x1,(%rax),%r31w");
3062         asm volatile("shlw $0x1,(%rax),%r31w");
3063         asm volatile("shlw %cl,(%r19,%rax,4),%r31w");
3064         asm volatile("shlw %cl,(%r19,%rax,4),%r31w");
3065         asm volatile("shr $0x2,%r12b,%r31b");
3066         asm volatile("shr %cl,%r16b,%r8b");
3067         asm volatile("shrb $0x1,(%rax),%r31b");
3068         asm volatile("shrd $0x1,%r12,(%rax),%r31");
3069         asm volatile("shrd $0x2,%r15d,(%rax),%r31d");
3070         asm volatile("shrd $0x2,%r8w,%r12w,%r31w");
3071         asm volatile("shrd %cl,%r12,%r16,%r8");
3072         asm volatile("shrd %cl,%r13w,(%r19,%rax,4),%r31w");
3073         asm volatile("shrd %cl,%r9w,(%rax),%r31w");
3074         asm volatile("shrl $0x2,(%rax),%r31d");
3075         asm volatile("shrw $0x1,(%rax),%r31w");
3076         asm volatile("shrw %cl,(%r19,%rax,4),%r31w");
3077         asm volatile("sub $0x1234,%ax,%r30w");
3078         asm volatile("sub %r15b,%r17b,%r18b");
3079         asm volatile("sub %r15d,(%r8),%r18d");
3080         asm volatile("sub (%r15,%rax,1),%r16b,%r8b");
3081         asm volatile("sub (%r15,%rax,1),%r16w,%r8w");
3082         asm volatile("subl $0x11,(%r19,%rax,4),%r20d");
3083         asm volatile("xor $0x1234,%ax,%r30w");
3084         asm volatile("xor %r15b,%r17b,%r18b");
3085         asm volatile("xor %r15d,(%r8),%r18d");
3086         asm volatile("xor (%r15,%rax,1),%r16b,%r8b");
3087         asm volatile("xor (%r15,%rax,1),%r16w,%r8w");
3088         asm volatile("xorl $0x11,(%r19,%rax,4),%r20d");
3089
3090         /* APX suppress status flags */
3091
3092         asm volatile("{nf} add %bl,%dl,%r8b");
3093         asm volatile("{nf} add %dx,%ax,%r9w");
3094         asm volatile("{nf} add 0x123(%r8,%rax,4),%bl,%dl");
3095         asm volatile("{nf} add 0x123(%r8,%rax,4),%dx,%ax");
3096         asm volatile("{nf} or %bl,%dl,%r8b");
3097         asm volatile("{nf} or %dx,%ax,%r9w");
3098         asm volatile("{nf} or 0x123(%r8,%rax,4),%bl,%dl");
3099         asm volatile("{nf} or 0x123(%r8,%rax,4),%dx,%ax");
3100         asm volatile("{nf} and %bl,%dl,%r8b");
3101         asm volatile("{nf} and %dx,%ax,%r9w");
3102         asm volatile("{nf} and 0x123(%r8,%rax,4),%bl,%dl");
3103         asm volatile("{nf} and 0x123(%r8,%rax,4),%dx,%ax");
3104         asm volatile("{nf} shld $0x7b,%dx,%ax,%r9w");
3105         asm volatile("{nf} sub %bl,%dl,%r8b");
3106         asm volatile("{nf} sub %dx,%ax,%r9w");
3107         asm volatile("{nf} sub 0x123(%r8,%rax,4),%bl,%dl");
3108         asm volatile("{nf} sub 0x123(%r8,%rax,4),%dx,%ax");
3109         asm volatile("{nf} shrd $0x7b,%dx,%ax,%r9w");
3110         asm volatile("{nf} xor %bl,%dl,%r8b");
3111         asm volatile("{nf} xor %r31,%r31");
3112         asm volatile("{nf} xor 0x123(%r8,%rax,4),%bl,%dl");
3113         asm volatile("{nf} xor 0x123(%r8,%rax,4),%dx,%ax");
3114         asm volatile("{nf} imul $0xff90,%r9,%r15");
3115         asm volatile("{nf} imul $0x7b,%r9,%r15");
3116         asm volatile("{nf} xor $0x7b,%bl,%dl");
3117         asm volatile("{nf} xor $0x7b,%dx,%ax");
3118         asm volatile("{nf} popcnt %r9,%r31");
3119         asm volatile("{nf} shld %cl,%dx,%ax,%r9w");
3120         asm volatile("{nf} shrd %cl,%dx,%ax,%r9w");
3121         asm volatile("{nf} imul %r9,%r31,%r11");
3122         asm volatile("{nf} sar $0x7b,%bl,%dl");
3123         asm volatile("{nf} sar $0x7b,%dx,%ax");
3124         asm volatile("{nf} sar $1,%bl,%dl");
3125         asm volatile("{nf} sar $1,%dx,%ax");
3126         asm volatile("{nf} sar %cl,%bl,%dl");
3127         asm volatile("{nf} sar %cl,%dx,%ax");
3128         asm volatile("{nf} andn %r9,%r31,%r11");
3129         asm volatile("{nf} blsi %r9,%r31");
3130         asm volatile("{nf} tzcnt %r9,%r31");
3131         asm volatile("{nf} lzcnt %r9,%r31");
3132         asm volatile("{nf} idiv %bl");
3133         asm volatile("{nf} idiv %dx");
3134         asm volatile("{nf} dec %bl,%dl");
3135         asm volatile("{nf} dec %dx,%ax");
3136
3137 #else  /* #ifdef __x86_64__ */
3138
3139         /* bound r32, mem (same op code as EVEX prefix) */
3140
3141         asm volatile("bound %eax, 0x12345678(%ecx)");
3142         asm volatile("bound %ecx, 0x12345678(%eax)");
3143         asm volatile("bound %edx, 0x12345678(%eax)");
3144         asm volatile("bound %ebx, 0x12345678(%eax)");
3145         asm volatile("bound %esp, 0x12345678(%eax)");
3146         asm volatile("bound %ebp, 0x12345678(%eax)");
3147         asm volatile("bound %esi, 0x12345678(%eax)");
3148         asm volatile("bound %edi, 0x12345678(%eax)");
3149         asm volatile("bound %ecx, (%eax)");
3150         asm volatile("bound %eax, (0x12345678)");
3151         asm volatile("bound %edx, (%ecx,%eax,1)");
3152         asm volatile("bound %edx, 0x12345678(,%eax,1)");
3153         asm volatile("bound %edx, (%eax,%ecx,1)");
3154         asm volatile("bound %edx, (%eax,%ecx,8)");
3155         asm volatile("bound %edx, 0x12(%eax)");
3156         asm volatile("bound %edx, 0x12(%ebp)");
3157         asm volatile("bound %edx, 0x12(%ecx,%eax,1)");
3158         asm volatile("bound %edx, 0x12(%ebp,%eax,1)");
3159         asm volatile("bound %edx, 0x12(%eax,%ecx,1)");
3160         asm volatile("bound %edx, 0x12(%eax,%ecx,8)");
3161         asm volatile("bound %edx, 0x12345678(%eax)");
3162         asm volatile("bound %edx, 0x12345678(%ebp)");
3163         asm volatile("bound %edx, 0x12345678(%ecx,%eax,1)");
3164         asm volatile("bound %edx, 0x12345678(%ebp,%eax,1)");
3165         asm volatile("bound %edx, 0x12345678(%eax,%ecx,1)");
3166         asm volatile("bound %edx, 0x12345678(%eax,%ecx,8)");
3167
3168         /* bound r16, mem (same op code as EVEX prefix) */
3169
3170         asm volatile("bound %ax, 0x12345678(%ecx)");
3171         asm volatile("bound %cx, 0x12345678(%eax)");
3172         asm volatile("bound %dx, 0x12345678(%eax)");
3173         asm volatile("bound %bx, 0x12345678(%eax)");
3174         asm volatile("bound %sp, 0x12345678(%eax)");
3175         asm volatile("bound %bp, 0x12345678(%eax)");
3176         asm volatile("bound %si, 0x12345678(%eax)");
3177         asm volatile("bound %di, 0x12345678(%eax)");
3178         asm volatile("bound %cx, (%eax)");
3179         asm volatile("bound %ax, (0x12345678)");
3180         asm volatile("bound %dx, (%ecx,%eax,1)");
3181         asm volatile("bound %dx, 0x12345678(,%eax,1)");
3182         asm volatile("bound %dx, (%eax,%ecx,1)");
3183         asm volatile("bound %dx, (%eax,%ecx,8)");
3184         asm volatile("bound %dx, 0x12(%eax)");
3185         asm volatile("bound %dx, 0x12(%ebp)");
3186         asm volatile("bound %dx, 0x12(%ecx,%eax,1)");
3187         asm volatile("bound %dx, 0x12(%ebp,%eax,1)");
3188         asm volatile("bound %dx, 0x12(%eax,%ecx,1)");
3189         asm volatile("bound %dx, 0x12(%eax,%ecx,8)");
3190         asm volatile("bound %dx, 0x12345678(%eax)");
3191         asm volatile("bound %dx, 0x12345678(%ebp)");
3192         asm volatile("bound %dx, 0x12345678(%ecx,%eax,1)");
3193         asm volatile("bound %dx, 0x12345678(%ebp,%eax,1)");
3194         asm volatile("bound %dx, 0x12345678(%eax,%ecx,1)");
3195         asm volatile("bound %dx, 0x12345678(%eax,%ecx,8)");
3196
3197         /* AVX-512: Instructions with the same op codes as Mask Instructions  */
3198
3199         asm volatile("cmovno %eax,%ebx");
3200         asm volatile("cmovno 0x12345678(%eax),%ecx");
3201         asm volatile("cmovno 0x12345678(%eax),%cx");
3202
3203         asm volatile("cmove  %eax,%ebx");
3204         asm volatile("cmove 0x12345678(%eax),%ecx");
3205         asm volatile("cmove 0x12345678(%eax),%cx");
3206
3207         asm volatile("seto    0x12345678(%eax)");
3208         asm volatile("setno   0x12345678(%eax)");
3209         asm volatile("setb    0x12345678(%eax)");
3210         asm volatile("setc    0x12345678(%eax)");
3211         asm volatile("setnae  0x12345678(%eax)");
3212         asm volatile("setae   0x12345678(%eax)");
3213         asm volatile("setnb   0x12345678(%eax)");
3214         asm volatile("setnc   0x12345678(%eax)");
3215         asm volatile("sets    0x12345678(%eax)");
3216         asm volatile("setns   0x12345678(%eax)");
3217
3218         /* AVX-512: Mask Instructions */
3219
3220         asm volatile("kandw  %k7,%k6,%k5");
3221         asm volatile("kandq  %k7,%k6,%k5");
3222         asm volatile("kandb  %k7,%k6,%k5");
3223         asm volatile("kandd  %k7,%k6,%k5");
3224
3225         asm volatile("kandnw  %k7,%k6,%k5");
3226         asm volatile("kandnq  %k7,%k6,%k5");
3227         asm volatile("kandnb  %k7,%k6,%k5");
3228         asm volatile("kandnd  %k7,%k6,%k5");
3229
3230         asm volatile("knotw  %k7,%k6");
3231         asm volatile("knotq  %k7,%k6");
3232         asm volatile("knotb  %k7,%k6");
3233         asm volatile("knotd  %k7,%k6");
3234
3235         asm volatile("korw  %k7,%k6,%k5");
3236         asm volatile("korq  %k7,%k6,%k5");
3237         asm volatile("korb  %k7,%k6,%k5");
3238         asm volatile("kord  %k7,%k6,%k5");
3239
3240         asm volatile("kxnorw  %k7,%k6,%k5");
3241         asm volatile("kxnorq  %k7,%k6,%k5");
3242         asm volatile("kxnorb  %k7,%k6,%k5");
3243         asm volatile("kxnord  %k7,%k6,%k5");
3244
3245         asm volatile("kxorw  %k7,%k6,%k5");
3246         asm volatile("kxorq  %k7,%k6,%k5");
3247         asm volatile("kxorb  %k7,%k6,%k5");
3248         asm volatile("kxord  %k7,%k6,%k5");
3249
3250         asm volatile("kaddw  %k7,%k6,%k5");
3251         asm volatile("kaddq  %k7,%k6,%k5");
3252         asm volatile("kaddb  %k7,%k6,%k5");
3253         asm volatile("kaddd  %k7,%k6,%k5");
3254
3255         asm volatile("kunpckbw %k7,%k6,%k5");
3256         asm volatile("kunpckwd %k7,%k6,%k5");
3257         asm volatile("kunpckdq %k7,%k6,%k5");
3258
3259         asm volatile("kmovw  %k6,%k5");
3260         asm volatile("kmovw  (%ecx),%k5");
3261         asm volatile("kmovw  0x123(%eax,%ecx,8),%k5");
3262         asm volatile("kmovw  %k5,(%ecx)");
3263         asm volatile("kmovw  %k5,0x123(%eax,%ecx,8)");
3264         asm volatile("kmovw  %eax,%k5");
3265         asm volatile("kmovw  %ebp,%k5");
3266         asm volatile("kmovw  %k5,%eax");
3267         asm volatile("kmovw  %k5,%ebp");
3268
3269         asm volatile("kmovq  %k6,%k5");
3270         asm volatile("kmovq  (%ecx),%k5");
3271         asm volatile("kmovq  0x123(%eax,%ecx,8),%k5");
3272         asm volatile("kmovq  %k5,(%ecx)");
3273         asm volatile("kmovq  %k5,0x123(%eax,%ecx,8)");
3274
3275         asm volatile("kmovb  %k6,%k5");
3276         asm volatile("kmovb  (%ecx),%k5");
3277         asm volatile("kmovb  0x123(%eax,%ecx,8),%k5");
3278         asm volatile("kmovb  %k5,(%ecx)");
3279         asm volatile("kmovb  %k5,0x123(%eax,%ecx,8)");
3280         asm volatile("kmovb  %eax,%k5");
3281         asm volatile("kmovb  %ebp,%k5");
3282         asm volatile("kmovb  %k5,%eax");
3283         asm volatile("kmovb  %k5,%ebp");
3284
3285         asm volatile("kmovd  %k6,%k5");
3286         asm volatile("kmovd  (%ecx),%k5");
3287         asm volatile("kmovd  0x123(%eax,%ecx,8),%k5");
3288         asm volatile("kmovd  %k5,(%ecx)");
3289         asm volatile("kmovd  %k5,0x123(%eax,%ecx,8)");
3290         asm volatile("kmovd  %eax,%k5");
3291         asm volatile("kmovd  %ebp,%k5");
3292         asm volatile("kmovd  %k5,%eax");
3293         asm volatile("kmovd  %k5,%ebp");
3294
3295         asm volatile("kortestw %k6,%k5");
3296         asm volatile("kortestq %k6,%k5");
3297         asm volatile("kortestb %k6,%k5");
3298         asm volatile("kortestd %k6,%k5");
3299
3300         asm volatile("ktestw %k6,%k5");
3301         asm volatile("ktestq %k6,%k5");
3302         asm volatile("ktestb %k6,%k5");
3303         asm volatile("ktestd %k6,%k5");
3304
3305         asm volatile("kshiftrw $0x12,%k6,%k5");
3306         asm volatile("kshiftrq $0x5b,%k6,%k5");
3307         asm volatile("kshiftlw $0x12,%k6,%k5");
3308         asm volatile("kshiftlq $0x5b,%k6,%k5");
3309
3310         /* AVX-512: Op code 0f 5b */
3311         asm volatile("vcvtdq2ps %xmm5,%xmm6");
3312         asm volatile("vcvtqq2ps %zmm5,%ymm6{%k7}");
3313         asm volatile("vcvtps2dq %xmm5,%xmm6");
3314         asm volatile("vcvttps2dq %xmm5,%xmm6");
3315
3316         /* AVX-512: Op code 0f 6f */
3317
3318         asm volatile("movq   %mm0,%mm4");
3319         asm volatile("vmovdqa %ymm4,%ymm6");
3320         asm volatile("vmovdqa32 %zmm5,%zmm6");
3321         asm volatile("vmovdqa64 %zmm5,%zmm6");
3322         asm volatile("vmovdqu %ymm4,%ymm6");
3323         asm volatile("vmovdqu32 %zmm5,%zmm6");
3324         asm volatile("vmovdqu64 %zmm5,%zmm6");
3325         asm volatile("vmovdqu8 %zmm5,%zmm6");
3326         asm volatile("vmovdqu16 %zmm5,%zmm6");
3327
3328         /* AVX-512: Op code 0f 78 */
3329
3330         asm volatile("vmread %eax,%ebx");
3331         asm volatile("vcvttps2udq %zmm5,%zmm6");
3332         asm volatile("vcvttpd2udq %zmm5,%ymm6{%k7}");
3333         asm volatile("vcvttsd2usi %xmm6,%eax");
3334         asm volatile("vcvttss2usi %xmm6,%eax");
3335         asm volatile("vcvttps2uqq %ymm5,%zmm6{%k7}");
3336         asm volatile("vcvttpd2uqq %zmm5,%zmm6");
3337
3338         /* AVX-512: Op code 0f 79 */
3339
3340         asm volatile("vmwrite %eax,%ebx");
3341         asm volatile("vcvtps2udq %zmm5,%zmm6");
3342         asm volatile("vcvtpd2udq %zmm5,%ymm6{%k7}");
3343         asm volatile("vcvtsd2usi %xmm6,%eax");
3344         asm volatile("vcvtss2usi %xmm6,%eax");
3345         asm volatile("vcvtps2uqq %ymm5,%zmm6{%k7}");
3346         asm volatile("vcvtpd2uqq %zmm5,%zmm6");
3347
3348         /* AVX-512: Op code 0f 7a */
3349
3350         asm volatile("vcvtudq2pd %ymm5,%zmm6{%k7}");
3351         asm volatile("vcvtuqq2pd %zmm5,%zmm6");
3352         asm volatile("vcvtudq2ps %zmm5,%zmm6");
3353         asm volatile("vcvtuqq2ps %zmm5,%ymm6{%k7}");
3354         asm volatile("vcvttps2qq %ymm5,%zmm6{%k7}");
3355         asm volatile("vcvttpd2qq %zmm5,%zmm6");
3356
3357         /* AVX-512: Op code 0f 7b */
3358
3359         asm volatile("vcvtusi2sd %eax,%xmm5,%xmm6");
3360         asm volatile("vcvtusi2ss %eax,%xmm5,%xmm6");
3361         asm volatile("vcvtps2qq %ymm5,%zmm6{%k7}");
3362         asm volatile("vcvtpd2qq %zmm5,%zmm6");
3363
3364         /* AVX-512: Op code 0f 7f */
3365
3366         asm volatile("movq.s  %mm0,%mm4");
3367         asm volatile("vmovdqa.s %ymm5,%ymm6");
3368         asm volatile("vmovdqa32.s %zmm5,%zmm6");
3369         asm volatile("vmovdqa64.s %zmm5,%zmm6");
3370         asm volatile("vmovdqu.s %ymm5,%ymm6");
3371         asm volatile("vmovdqu32.s %zmm5,%zmm6");
3372         asm volatile("vmovdqu64.s %zmm5,%zmm6");
3373         asm volatile("vmovdqu8.s %zmm5,%zmm6");
3374         asm volatile("vmovdqu16.s %zmm5,%zmm6");
3375
3376         /* AVX-512: Op code 0f db */
3377
3378         asm volatile("pand  %mm1,%mm2");
3379         asm volatile("pand  %xmm1,%xmm2");
3380         asm volatile("vpand  %ymm4,%ymm6,%ymm2");
3381         asm volatile("vpandd %zmm4,%zmm5,%zmm6");
3382         asm volatile("vpandq %zmm4,%zmm5,%zmm6");
3383
3384         /* AVX-512: Op code 0f df */
3385
3386         asm volatile("pandn  %mm1,%mm2");
3387         asm volatile("pandn  %xmm1,%xmm2");
3388         asm volatile("vpandn %ymm4,%ymm6,%ymm2");
3389         asm volatile("vpandnd %zmm4,%zmm5,%zmm6");
3390         asm volatile("vpandnq %zmm4,%zmm5,%zmm6");
3391
3392         /* AVX-512: Op code 0f e6 */
3393
3394         asm volatile("vcvttpd2dq %xmm1,%xmm2");
3395         asm volatile("vcvtdq2pd %xmm5,%xmm6");
3396         asm volatile("vcvtdq2pd %ymm5,%zmm6{%k7}");
3397         asm volatile("vcvtqq2pd %zmm5,%zmm6");
3398         asm volatile("vcvtpd2dq %xmm1,%xmm2");
3399
3400         /* AVX-512: Op code 0f eb */
3401
3402         asm volatile("por   %mm4,%mm6");
3403         asm volatile("vpor   %ymm4,%ymm6,%ymm2");
3404         asm volatile("vpord  %zmm4,%zmm5,%zmm6");
3405         asm volatile("vporq  %zmm4,%zmm5,%zmm6");
3406
3407         /* AVX-512: Op code 0f ef */
3408
3409         asm volatile("pxor   %mm4,%mm6");
3410         asm volatile("vpxor  %ymm4,%ymm6,%ymm2");
3411         asm volatile("vpxord %zmm4,%zmm5,%zmm6");
3412         asm volatile("vpxorq %zmm4,%zmm5,%zmm6");
3413
3414         /* AVX-512: Op code 0f 38 10 */
3415
3416         asm volatile("pblendvb %xmm1,%xmm0");
3417         asm volatile("vpsrlvw %zmm4,%zmm5,%zmm6");
3418         asm volatile("vpmovuswb %zmm5,%ymm6{%k7}");
3419
3420         /* AVX-512: Op code 0f 38 11 */
3421
3422         asm volatile("vpmovusdb %zmm5,%xmm6{%k7}");
3423         asm volatile("vpsravw %zmm4,%zmm5,%zmm6");
3424
3425         /* AVX-512: Op code 0f 38 12 */
3426
3427         asm volatile("vpmovusqb %zmm5,%xmm6{%k7}");
3428         asm volatile("vpsllvw %zmm4,%zmm5,%zmm6");
3429
3430         /* AVX-512: Op code 0f 38 13 */
3431
3432         asm volatile("vcvtph2ps %xmm3,%ymm5");
3433         asm volatile("vcvtph2ps %ymm5,%zmm6{%k7}");
3434         asm volatile("vpmovusdw %zmm5,%ymm6{%k7}");
3435
3436         /* AVX-512: Op code 0f 38 14 */
3437
3438         asm volatile("blendvps %xmm1,%xmm0");
3439         asm volatile("vpmovusqw %zmm5,%xmm6{%k7}");
3440         asm volatile("vprorvd %zmm4,%zmm5,%zmm6");
3441         asm volatile("vprorvq %zmm4,%zmm5,%zmm6");
3442
3443         /* AVX-512: Op code 0f 38 15 */
3444
3445         asm volatile("blendvpd %xmm1,%xmm0");
3446         asm volatile("vpmovusqd %zmm5,%ymm6{%k7}");
3447         asm volatile("vprolvd %zmm4,%zmm5,%zmm6");
3448         asm volatile("vprolvq %zmm4,%zmm5,%zmm6");
3449
3450         /* AVX-512: Op code 0f 38 16 */
3451
3452         asm volatile("vpermps %ymm4,%ymm6,%ymm2");
3453         asm volatile("vpermps %ymm4,%ymm6,%ymm2{%k7}");
3454         asm volatile("vpermpd %ymm4,%ymm6,%ymm2{%k7}");
3455
3456         /* AVX-512: Op code 0f 38 19 */
3457
3458         asm volatile("vbroadcastsd %xmm4,%ymm6");
3459         asm volatile("vbroadcastf32x2 %xmm7,%zmm6");
3460
3461         /* AVX-512: Op code 0f 38 1a */
3462
3463         asm volatile("vbroadcastf128 (%ecx),%ymm4");
3464         asm volatile("vbroadcastf32x4 (%ecx),%zmm6");
3465         asm volatile("vbroadcastf64x2 (%ecx),%zmm6");
3466
3467         /* AVX-512: Op code 0f 38 1b */
3468
3469         asm volatile("vbroadcastf32x8 (%ecx),%zmm6");
3470         asm volatile("vbroadcastf64x4 (%ecx),%zmm6");
3471
3472         /* AVX-512: Op code 0f 38 1f */
3473
3474         asm volatile("vpabsq %zmm4,%zmm6");
3475
3476         /* AVX-512: Op code 0f 38 20 */
3477
3478         asm volatile("vpmovsxbw %xmm4,%xmm5");
3479         asm volatile("vpmovswb %zmm5,%ymm6{%k7}");
3480
3481         /* AVX-512: Op code 0f 38 21 */
3482
3483         asm volatile("vpmovsxbd %xmm4,%ymm6");
3484         asm volatile("vpmovsdb %zmm5,%xmm6{%k7}");
3485
3486         /* AVX-512: Op code 0f 38 22 */
3487
3488         asm volatile("vpmovsxbq %xmm4,%ymm4");
3489         asm volatile("vpmovsqb %zmm5,%xmm6{%k7}");
3490
3491         /* AVX-512: Op code 0f 38 23 */
3492
3493         asm volatile("vpmovsxwd %xmm4,%ymm4");
3494         asm volatile("vpmovsdw %zmm5,%ymm6{%k7}");
3495
3496         /* AVX-512: Op code 0f 38 24 */
3497
3498         asm volatile("vpmovsxwq %xmm4,%ymm6");
3499         asm volatile("vpmovsqw %zmm5,%xmm6{%k7}");
3500
3501         /* AVX-512: Op code 0f 38 25 */
3502
3503         asm volatile("vpmovsxdq %xmm4,%ymm4");
3504         asm volatile("vpmovsqd %zmm5,%ymm6{%k7}");
3505
3506         /* AVX-512: Op code 0f 38 26 */
3507
3508         asm volatile("vptestmb %zmm5,%zmm6,%k5");
3509         asm volatile("vptestmw %zmm5,%zmm6,%k5");
3510         asm volatile("vptestnmb %zmm4,%zmm5,%k5");
3511         asm volatile("vptestnmw %zmm4,%zmm5,%k5");
3512
3513         /* AVX-512: Op code 0f 38 27 */
3514
3515         asm volatile("vptestmd %zmm5,%zmm6,%k5");
3516         asm volatile("vptestmq %zmm5,%zmm6,%k5");
3517         asm volatile("vptestnmd %zmm4,%zmm5,%k5");
3518         asm volatile("vptestnmq %zmm4,%zmm5,%k5");
3519
3520         /* AVX-512: Op code 0f 38 28 */
3521
3522         asm volatile("vpmuldq %ymm4,%ymm6,%ymm2");
3523         asm volatile("vpmovm2b %k5,%zmm6");
3524         asm volatile("vpmovm2w %k5,%zmm6");
3525
3526         /* AVX-512: Op code 0f 38 29 */
3527
3528         asm volatile("vpcmpeqq %ymm4,%ymm6,%ymm2");
3529         asm volatile("vpmovb2m %zmm6,%k5");
3530         asm volatile("vpmovw2m %zmm6,%k5");
3531
3532         /* AVX-512: Op code 0f 38 2a */
3533
3534         asm volatile("vmovntdqa (%ecx),%ymm4");
3535         asm volatile("vpbroadcastmb2q %k6,%zmm1");
3536
3537         /* AVX-512: Op code 0f 38 2c */
3538
3539         asm volatile("vmaskmovps (%ecx),%ymm4,%ymm6");
3540         asm volatile("vscalefps %zmm4,%zmm5,%zmm6");
3541         asm volatile("vscalefpd %zmm4,%zmm5,%zmm6");
3542
3543         /* AVX-512: Op code 0f 38 2d */
3544
3545         asm volatile("vmaskmovpd (%ecx),%ymm4,%ymm6");
3546         asm volatile("vscalefss %xmm4,%xmm5,%xmm6{%k7}");
3547         asm volatile("vscalefsd %xmm4,%xmm5,%xmm6{%k7}");
3548
3549         /* AVX-512: Op code 0f 38 30 */
3550
3551         asm volatile("vpmovzxbw %xmm4,%ymm4");
3552         asm volatile("vpmovwb %zmm5,%ymm6{%k7}");
3553
3554         /* AVX-512: Op code 0f 38 31 */
3555
3556         asm volatile("vpmovzxbd %xmm4,%ymm6");
3557         asm volatile("vpmovdb %zmm5,%xmm6{%k7}");
3558
3559         /* AVX-512: Op code 0f 38 32 */
3560
3561         asm volatile("vpmovzxbq %xmm4,%ymm4");
3562         asm volatile("vpmovqb %zmm5,%xmm6{%k7}");
3563
3564         /* AVX-512: Op code 0f 38 33 */
3565
3566         asm volatile("vpmovzxwd %xmm4,%ymm4");
3567         asm volatile("vpmovdw %zmm5,%ymm6{%k7}");
3568
3569         /* AVX-512: Op code 0f 38 34 */
3570
3571         asm volatile("vpmovzxwq %xmm4,%ymm6");
3572         asm volatile("vpmovqw %zmm5,%xmm6{%k7}");
3573
3574         /* AVX-512: Op code 0f 38 35 */
3575
3576         asm volatile("vpmovzxdq %xmm4,%ymm4");
3577         asm volatile("vpmovqd %zmm5,%ymm6{%k7}");
3578
3579         /* AVX-512: Op code 0f 38 36 */
3580
3581         asm volatile("vpermd %ymm4,%ymm6,%ymm2");
3582         asm volatile("vpermd %ymm4,%ymm6,%ymm2{%k7}");
3583         asm volatile("vpermq %ymm4,%ymm6,%ymm2{%k7}");
3584
3585         /* AVX-512: Op code 0f 38 38 */
3586
3587         asm volatile("vpminsb %ymm4,%ymm6,%ymm2");
3588         asm volatile("vpmovm2d %k5,%zmm6");
3589         asm volatile("vpmovm2q %k5,%zmm6");
3590
3591         /* AVX-512: Op code 0f 38 39 */
3592
3593         asm volatile("vpminsd %xmm1,%xmm2,%xmm3");
3594         asm volatile("vpminsd %zmm4,%zmm5,%zmm6");
3595         asm volatile("vpminsq %zmm4,%zmm5,%zmm6");
3596         asm volatile("vpmovd2m %zmm6,%k5");
3597         asm volatile("vpmovq2m %zmm6,%k5");
3598
3599         /* AVX-512: Op code 0f 38 3a */
3600
3601         asm volatile("vpminuw %ymm4,%ymm6,%ymm2");
3602         asm volatile("vpbroadcastmw2d %k6,%zmm6");
3603
3604         /* AVX-512: Op code 0f 38 3b */
3605
3606         asm volatile("vpminud %ymm4,%ymm6,%ymm2");
3607         asm volatile("vpminud %zmm4,%zmm5,%zmm6");
3608         asm volatile("vpminuq %zmm4,%zmm5,%zmm6");
3609
3610         /* AVX-512: Op code 0f 38 3d */
3611
3612         asm volatile("vpmaxsd %ymm4,%ymm6,%ymm2");
3613         asm volatile("vpmaxsd %zmm4,%zmm5,%zmm6");
3614         asm volatile("vpmaxsq %zmm4,%zmm5,%zmm6");
3615
3616         /* AVX-512: Op code 0f 38 3f */
3617
3618         asm volatile("vpmaxud %ymm4,%ymm6,%ymm2");
3619         asm volatile("vpmaxud %zmm4,%zmm5,%zmm6");
3620         asm volatile("vpmaxuq %zmm4,%zmm5,%zmm6");
3621
3622         /* AVX-512: Op code 0f 38 40 */
3623
3624         asm volatile("vpmulld %ymm4,%ymm6,%ymm2");
3625         asm volatile("vpmulld %zmm4,%zmm5,%zmm6");
3626         asm volatile("vpmullq %zmm4,%zmm5,%zmm6");
3627
3628         /* AVX-512: Op code 0f 38 42 */
3629
3630         asm volatile("vgetexpps %zmm5,%zmm6");
3631         asm volatile("vgetexppd %zmm5,%zmm6");
3632
3633         /* AVX-512: Op code 0f 38 43 */
3634
3635         asm volatile("vgetexpss %xmm4,%xmm5,%xmm6{%k7}");
3636         asm volatile("vgetexpsd %xmm2,%xmm3,%xmm4{%k7}");
3637
3638         /* AVX-512: Op code 0f 38 44 */
3639
3640         asm volatile("vplzcntd %zmm5,%zmm6");
3641         asm volatile("vplzcntq %zmm5,%zmm6");
3642
3643         /* AVX-512: Op code 0f 38 46 */
3644
3645         asm volatile("vpsravd %ymm4,%ymm6,%ymm2");
3646         asm volatile("vpsravd %zmm4,%zmm5,%zmm6");
3647         asm volatile("vpsravq %zmm4,%zmm5,%zmm6");
3648
3649         /* AVX-512: Op code 0f 38 4c */
3650
3651         asm volatile("vrcp14ps %zmm5,%zmm6");
3652         asm volatile("vrcp14pd %zmm5,%zmm6");
3653
3654         /* AVX-512: Op code 0f 38 4d */
3655
3656         asm volatile("vrcp14ss %xmm4,%xmm5,%xmm6{%k7}");
3657         asm volatile("vrcp14sd %xmm4,%xmm5,%xmm6{%k7}");
3658
3659         /* AVX-512: Op code 0f 38 4e */
3660
3661         asm volatile("vrsqrt14ps %zmm5,%zmm6");
3662         asm volatile("vrsqrt14pd %zmm5,%zmm6");
3663
3664         /* AVX-512: Op code 0f 38 4f */
3665
3666         asm volatile("vrsqrt14ss %xmm4,%xmm5,%xmm6{%k7}");
3667         asm volatile("vrsqrt14sd %xmm4,%xmm5,%xmm6{%k7}");
3668
3669         /* AVX-512: Op code 0f 38 50 */
3670
3671         asm volatile("vpdpbusd %xmm1, %xmm2, %xmm3");
3672         asm volatile("vpdpbusd %ymm1, %ymm2, %ymm3");
3673         asm volatile("vpdpbusd %zmm1, %zmm2, %zmm3");
3674         asm volatile("vpdpbusd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3675
3676         /* AVX-512: Op code 0f 38 51 */
3677
3678         asm volatile("vpdpbusds %xmm1, %xmm2, %xmm3");
3679         asm volatile("vpdpbusds %ymm1, %ymm2, %ymm3");
3680         asm volatile("vpdpbusds %zmm1, %zmm2, %zmm3");
3681         asm volatile("vpdpbusds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3682
3683         /* AVX-512: Op code 0f 38 52 */
3684
3685         asm volatile("vdpbf16ps %xmm1, %xmm2, %xmm3");
3686         asm volatile("vdpbf16ps %ymm1, %ymm2, %ymm3");
3687         asm volatile("vdpbf16ps %zmm1, %zmm2, %zmm3");
3688         asm volatile("vdpbf16ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3689
3690         asm volatile("vpdpwssd %xmm1, %xmm2, %xmm3");
3691         asm volatile("vpdpwssd %ymm1, %ymm2, %ymm3");
3692         asm volatile("vpdpwssd %zmm1, %zmm2, %zmm3");
3693         asm volatile("vpdpwssd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3694
3695         asm volatile("vp4dpwssd (%eax), %zmm0, %zmm4");
3696         asm volatile("vp4dpwssd 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
3697
3698         /* AVX-512: Op code 0f 38 53 */
3699
3700         asm volatile("vpdpwssds %xmm1, %xmm2, %xmm3");
3701         asm volatile("vpdpwssds %ymm1, %ymm2, %ymm3");
3702         asm volatile("vpdpwssds %zmm1, %zmm2, %zmm3");
3703         asm volatile("vpdpwssds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3704
3705         asm volatile("vp4dpwssds (%eax), %zmm0, %zmm4");
3706         asm volatile("vp4dpwssds 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
3707
3708         /* AVX-512: Op code 0f 38 54 */
3709
3710         asm volatile("vpopcntb %xmm1, %xmm2");
3711         asm volatile("vpopcntb %ymm1, %ymm2");
3712         asm volatile("vpopcntb %zmm1, %zmm2");
3713         asm volatile("vpopcntb 0x12345678(%eax,%ecx,8),%zmm2");
3714
3715         asm volatile("vpopcntw %xmm1, %xmm2");
3716         asm volatile("vpopcntw %ymm1, %ymm2");
3717         asm volatile("vpopcntw %zmm1, %zmm2");
3718         asm volatile("vpopcntw 0x12345678(%eax,%ecx,8),%zmm2");
3719
3720         /* AVX-512: Op code 0f 38 55 */
3721
3722         asm volatile("vpopcntd %xmm1, %xmm2");
3723         asm volatile("vpopcntd %ymm1, %ymm2");
3724         asm volatile("vpopcntd %zmm1, %zmm2");
3725         asm volatile("vpopcntd 0x12345678(%eax,%ecx,8),%zmm2");
3726
3727         asm volatile("vpopcntq %xmm1, %xmm2");
3728         asm volatile("vpopcntq %ymm1, %ymm2");
3729         asm volatile("vpopcntq %zmm1, %zmm2");
3730         asm volatile("vpopcntq 0x12345678(%eax,%ecx,8),%zmm2");
3731
3732         /* AVX-512: Op code 0f 38 59 */
3733
3734         asm volatile("vpbroadcastq %xmm4,%xmm6");
3735         asm volatile("vbroadcasti32x2 %xmm7,%zmm6");
3736
3737         /* AVX-512: Op code 0f 38 5a */
3738
3739         asm volatile("vbroadcasti128 (%ecx),%ymm4");
3740         asm volatile("vbroadcasti32x4 (%ecx),%zmm6");
3741         asm volatile("vbroadcasti64x2 (%ecx),%zmm6");
3742
3743         /* AVX-512: Op code 0f 38 5b */
3744
3745         asm volatile("vbroadcasti32x8 (%ecx),%zmm6");
3746         asm volatile("vbroadcasti64x4 (%ecx),%zmm6");
3747
3748         /* AVX-512: Op code 0f 38 62 */
3749
3750         asm volatile("vpexpandb %xmm1, %xmm2");
3751         asm volatile("vpexpandb %ymm1, %ymm2");
3752         asm volatile("vpexpandb %zmm1, %zmm2");
3753         asm volatile("vpexpandb 0x12345678(%eax,%ecx,8),%zmm2");
3754
3755         asm volatile("vpexpandw %xmm1, %xmm2");
3756         asm volatile("vpexpandw %ymm1, %ymm2");
3757         asm volatile("vpexpandw %zmm1, %zmm2");
3758         asm volatile("vpexpandw 0x12345678(%eax,%ecx,8),%zmm2");
3759
3760         /* AVX-512: Op code 0f 38 63 */
3761
3762         asm volatile("vpcompressb %xmm1, %xmm2");
3763         asm volatile("vpcompressb %ymm1, %ymm2");
3764         asm volatile("vpcompressb %zmm1, %zmm2");
3765         asm volatile("vpcompressb %zmm2,0x12345678(%eax,%ecx,8)");
3766
3767         asm volatile("vpcompressw %xmm1, %xmm2");
3768         asm volatile("vpcompressw %ymm1, %ymm2");
3769         asm volatile("vpcompressw %zmm1, %zmm2");
3770         asm volatile("vpcompressw %zmm2,0x12345678(%eax,%ecx,8)");
3771
3772         /* AVX-512: Op code 0f 38 64 */
3773
3774         asm volatile("vpblendmd %zmm4,%zmm5,%zmm6");
3775         asm volatile("vpblendmq %zmm4,%zmm5,%zmm6");
3776
3777         /* AVX-512: Op code 0f 38 65 */
3778
3779         asm volatile("vblendmps %zmm4,%zmm5,%zmm6");
3780         asm volatile("vblendmpd %zmm4,%zmm5,%zmm6");
3781
3782         /* AVX-512: Op code 0f 38 66 */
3783
3784         asm volatile("vpblendmb %zmm4,%zmm5,%zmm6");
3785         asm volatile("vpblendmw %zmm4,%zmm5,%zmm6");
3786
3787         /* AVX-512: Op code 0f 38 68 */
3788
3789         asm volatile("vp2intersectd %xmm1, %xmm2, %k3");
3790         asm volatile("vp2intersectd %ymm1, %ymm2, %k3");
3791         asm volatile("vp2intersectd %zmm1, %zmm2, %k3");
3792         asm volatile("vp2intersectd 0x12345678(%eax,%ecx,8),%zmm2,%k3");
3793
3794         asm volatile("vp2intersectq %xmm1, %xmm2, %k3");
3795         asm volatile("vp2intersectq %ymm1, %ymm2, %k3");
3796         asm volatile("vp2intersectq %zmm1, %zmm2, %k3");
3797         asm volatile("vp2intersectq 0x12345678(%eax,%ecx,8),%zmm2,%k3");
3798
3799         /* AVX-512: Op code 0f 38 70 */
3800
3801         asm volatile("vpshldvw %xmm1, %xmm2, %xmm3");
3802         asm volatile("vpshldvw %ymm1, %ymm2, %ymm3");
3803         asm volatile("vpshldvw %zmm1, %zmm2, %zmm3");
3804         asm volatile("vpshldvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3805
3806         /* AVX-512: Op code 0f 38 71 */
3807
3808         asm volatile("vpshldvd %xmm1, %xmm2, %xmm3");
3809         asm volatile("vpshldvd %ymm1, %ymm2, %ymm3");
3810         asm volatile("vpshldvd %zmm1, %zmm2, %zmm3");
3811         asm volatile("vpshldvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3812
3813         asm volatile("vpshldvq %xmm1, %xmm2, %xmm3");
3814         asm volatile("vpshldvq %ymm1, %ymm2, %ymm3");
3815         asm volatile("vpshldvq %zmm1, %zmm2, %zmm3");
3816         asm volatile("vpshldvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3817
3818         /* AVX-512: Op code 0f 38 72 */
3819
3820         asm volatile("vcvtne2ps2bf16 %xmm1, %xmm2, %xmm3");
3821         asm volatile("vcvtne2ps2bf16 %ymm1, %ymm2, %ymm3");
3822         asm volatile("vcvtne2ps2bf16 %zmm1, %zmm2, %zmm3");
3823         asm volatile("vcvtne2ps2bf16 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3824
3825         asm volatile("vcvtneps2bf16 %xmm1, %xmm2");
3826         asm volatile("vcvtneps2bf16 %ymm1, %xmm2");
3827         asm volatile("vcvtneps2bf16 %zmm1, %ymm2");
3828         asm volatile("vcvtneps2bf16 0x12345678(%eax,%ecx,8),%ymm2");
3829
3830         asm volatile("vpshrdvw %xmm1, %xmm2, %xmm3");
3831         asm volatile("vpshrdvw %ymm1, %ymm2, %ymm3");
3832         asm volatile("vpshrdvw %zmm1, %zmm2, %zmm3");
3833         asm volatile("vpshrdvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3834
3835         /* AVX-512: Op code 0f 38 73 */
3836
3837         asm volatile("vpshrdvd %xmm1, %xmm2, %xmm3");
3838         asm volatile("vpshrdvd %ymm1, %ymm2, %ymm3");
3839         asm volatile("vpshrdvd %zmm1, %zmm2, %zmm3");
3840         asm volatile("vpshrdvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3841
3842         asm volatile("vpshrdvq %xmm1, %xmm2, %xmm3");
3843         asm volatile("vpshrdvq %ymm1, %ymm2, %ymm3");
3844         asm volatile("vpshrdvq %zmm1, %zmm2, %zmm3");
3845         asm volatile("vpshrdvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3846
3847         /* AVX-512: Op code 0f 38 75 */
3848
3849         asm volatile("vpermi2b %zmm4,%zmm5,%zmm6");
3850         asm volatile("vpermi2w %zmm4,%zmm5,%zmm6");
3851
3852         /* AVX-512: Op code 0f 38 76 */
3853
3854         asm volatile("vpermi2d %zmm4,%zmm5,%zmm6");
3855         asm volatile("vpermi2q %zmm4,%zmm5,%zmm6");
3856
3857         /* AVX-512: Op code 0f 38 77 */
3858
3859         asm volatile("vpermi2ps %zmm4,%zmm5,%zmm6");
3860         asm volatile("vpermi2pd %zmm4,%zmm5,%zmm6");
3861
3862         /* AVX-512: Op code 0f 38 7a */
3863
3864         asm volatile("vpbroadcastb %eax,%xmm3");
3865
3866         /* AVX-512: Op code 0f 38 7b */
3867
3868         asm volatile("vpbroadcastw %eax,%xmm3");
3869
3870         /* AVX-512: Op code 0f 38 7c */
3871
3872         asm volatile("vpbroadcastd %eax,%xmm3");
3873
3874         /* AVX-512: Op code 0f 38 7d */
3875
3876         asm volatile("vpermt2b %zmm4,%zmm5,%zmm6");
3877         asm volatile("vpermt2w %zmm4,%zmm5,%zmm6");
3878
3879         /* AVX-512: Op code 0f 38 7e */
3880
3881         asm volatile("vpermt2d %zmm4,%zmm5,%zmm6");
3882         asm volatile("vpermt2q %zmm4,%zmm5,%zmm6");
3883
3884         /* AVX-512: Op code 0f 38 7f */
3885
3886         asm volatile("vpermt2ps %zmm4,%zmm5,%zmm6");
3887         asm volatile("vpermt2pd %zmm4,%zmm5,%zmm6");
3888
3889         /* AVX-512: Op code 0f 38 83 */
3890
3891         asm volatile("vpmultishiftqb %zmm4,%zmm5,%zmm6");
3892
3893         /* AVX-512: Op code 0f 38 88 */
3894
3895         asm volatile("vexpandps (%ecx),%zmm6");
3896         asm volatile("vexpandpd (%ecx),%zmm6");
3897
3898         /* AVX-512: Op code 0f 38 89 */
3899
3900         asm volatile("vpexpandd (%ecx),%zmm6");
3901         asm volatile("vpexpandq (%ecx),%zmm6");
3902
3903         /* AVX-512: Op code 0f 38 8a */
3904
3905         asm volatile("vcompressps %zmm6,(%ecx)");
3906         asm volatile("vcompresspd %zmm6,(%ecx)");
3907
3908         /* AVX-512: Op code 0f 38 8b */
3909
3910         asm volatile("vpcompressd %zmm6,(%ecx)");
3911         asm volatile("vpcompressq %zmm6,(%ecx)");
3912
3913         /* AVX-512: Op code 0f 38 8d */
3914
3915         asm volatile("vpermb %zmm4,%zmm5,%zmm6");
3916         asm volatile("vpermw %zmm4,%zmm5,%zmm6");
3917
3918         /* AVX-512: Op code 0f 38 8f */
3919
3920         asm volatile("vpshufbitqmb %xmm1, %xmm2, %k3");
3921         asm volatile("vpshufbitqmb %ymm1, %ymm2, %k3");
3922         asm volatile("vpshufbitqmb %zmm1, %zmm2, %k3");
3923         asm volatile("vpshufbitqmb 0x12345678(%eax,%ecx,8),%zmm2,%k3");
3924
3925         /* AVX-512: Op code 0f 38 90 */
3926
3927         asm volatile("vpgatherdd %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
3928         asm volatile("vpgatherdq %xmm2,0x04(%ebp,%xmm7,2),%xmm1");
3929         asm volatile("vpgatherdd 0x7b(%ebp,%zmm7,8),%zmm6{%k1}");
3930         asm volatile("vpgatherdq 0x7b(%ebp,%ymm7,8),%zmm6{%k1}");
3931
3932         /* AVX-512: Op code 0f 38 91 */
3933
3934         asm volatile("vpgatherqd %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
3935         asm volatile("vpgatherqq %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
3936         asm volatile("vpgatherqd 0x7b(%ebp,%zmm7,8),%ymm6{%k1}");
3937         asm volatile("vpgatherqq 0x7b(%ebp,%zmm7,8),%zmm6{%k1}");
3938
3939         /* AVX-512: Op code 0f 38 9a */
3940
3941         asm volatile("vfmsub132ps %xmm1, %xmm2, %xmm3");
3942         asm volatile("vfmsub132ps %ymm1, %ymm2, %ymm3");
3943         asm volatile("vfmsub132ps %zmm1, %zmm2, %zmm3");
3944         asm volatile("vfmsub132ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3945
3946         asm volatile("vfmsub132pd %xmm1, %xmm2, %xmm3");
3947         asm volatile("vfmsub132pd %ymm1, %ymm2, %ymm3");
3948         asm volatile("vfmsub132pd %zmm1, %zmm2, %zmm3");
3949         asm volatile("vfmsub132pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3950
3951         asm volatile("v4fmaddps (%eax), %zmm0, %zmm4");
3952         asm volatile("v4fmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
3953
3954         /* AVX-512: Op code 0f 38 9b */
3955
3956         asm volatile("vfmsub132ss %xmm1, %xmm2, %xmm3");
3957         asm volatile("vfmsub132ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
3958
3959         asm volatile("vfmsub132sd %xmm1, %xmm2, %xmm3");
3960         asm volatile("vfmsub132sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
3961
3962         asm volatile("v4fmaddss (%eax), %xmm0, %xmm4");
3963         asm volatile("v4fmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
3964
3965         /* AVX-512: Op code 0f 38 a0 */
3966
3967         asm volatile("vpscatterdd %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
3968         asm volatile("vpscatterdq %zmm6,0x7b(%ebp,%ymm7,8){%k1}");
3969
3970         /* AVX-512: Op code 0f 38 a1 */
3971
3972         asm volatile("vpscatterqd %ymm6,0x7b(%ebp,%zmm7,8){%k1}");
3973         asm volatile("vpscatterqq %ymm6,0x7b(%ebp,%ymm7,8){%k1}");
3974
3975         /* AVX-512: Op code 0f 38 a2 */
3976
3977         asm volatile("vscatterdps %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
3978         asm volatile("vscatterdpd %zmm6,0x7b(%ebp,%ymm7,8){%k1}");
3979
3980         /* AVX-512: Op code 0f 38 a3 */
3981
3982         asm volatile("vscatterqps %ymm6,0x7b(%ebp,%zmm7,8){%k1}");
3983         asm volatile("vscatterqpd %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
3984
3985         /* AVX-512: Op code 0f 38 aa */
3986
3987         asm volatile("vfmsub213ps %xmm1, %xmm2, %xmm3");
3988         asm volatile("vfmsub213ps %ymm1, %ymm2, %ymm3");
3989         asm volatile("vfmsub213ps %zmm1, %zmm2, %zmm3");
3990         asm volatile("vfmsub213ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3991
3992         asm volatile("vfmsub213pd %xmm1, %xmm2, %xmm3");
3993         asm volatile("vfmsub213pd %ymm1, %ymm2, %ymm3");
3994         asm volatile("vfmsub213pd %zmm1, %zmm2, %zmm3");
3995         asm volatile("vfmsub213pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
3996
3997         asm volatile("v4fnmaddps (%eax), %zmm0, %zmm4");
3998         asm volatile("v4fnmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
3999
4000         /* AVX-512: Op code 0f 38 ab */
4001
4002         asm volatile("vfmsub213ss %xmm1, %xmm2, %xmm3");
4003         asm volatile("vfmsub213ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
4004
4005         asm volatile("vfmsub213sd %xmm1, %xmm2, %xmm3");
4006         asm volatile("vfmsub213sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
4007
4008         asm volatile("v4fnmaddss (%eax), %xmm0, %xmm4");
4009         asm volatile("v4fnmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
4010
4011         /* AVX-512: Op code 0f 38 b4 */
4012
4013         asm volatile("vpmadd52luq %zmm4,%zmm5,%zmm6");
4014
4015         /* AVX-512: Op code 0f 38 b5 */
4016
4017         asm volatile("vpmadd52huq %zmm4,%zmm5,%zmm6");
4018
4019         /* AVX-512: Op code 0f 38 c4 */
4020
4021         asm volatile("vpconflictd %zmm5,%zmm6");
4022         asm volatile("vpconflictq %zmm5,%zmm6");
4023
4024         /* AVX-512: Op code 0f 38 c8 */
4025
4026         asm volatile("vexp2ps %zmm6,%zmm7");
4027         asm volatile("vexp2pd %zmm6,%zmm7");
4028
4029         /* AVX-512: Op code 0f 38 ca */
4030
4031         asm volatile("vrcp28ps %zmm6,%zmm7");
4032         asm volatile("vrcp28pd %zmm6,%zmm7");
4033
4034         /* AVX-512: Op code 0f 38 cb */
4035
4036         asm volatile("vrcp28ss %xmm5,%xmm6,%xmm7{%k7}");
4037         asm volatile("vrcp28sd %xmm5,%xmm6,%xmm7{%k7}");
4038
4039         /* AVX-512: Op code 0f 38 cc */
4040
4041         asm volatile("vrsqrt28ps %zmm6,%zmm7");
4042         asm volatile("vrsqrt28pd %zmm6,%zmm7");
4043
4044         /* AVX-512: Op code 0f 38 cd */
4045
4046         asm volatile("vrsqrt28ss %xmm5,%xmm6,%xmm7{%k7}");
4047         asm volatile("vrsqrt28sd %xmm5,%xmm6,%xmm7{%k7}");
4048
4049         /* AVX-512: Op code 0f 38 cf */
4050
4051         asm volatile("gf2p8mulb %xmm1, %xmm3");
4052         asm volatile("gf2p8mulb 0x12345678(%eax,%ecx,8),%xmm3");
4053
4054         asm volatile("vgf2p8mulb %xmm1, %xmm2, %xmm3");
4055         asm volatile("vgf2p8mulb %ymm1, %ymm2, %ymm3");
4056         asm volatile("vgf2p8mulb %zmm1, %zmm2, %zmm3");
4057         asm volatile("vgf2p8mulb 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
4058
4059         /* AVX-512: Op code 0f 38 dc */
4060
4061         asm volatile("vaesenc %xmm1, %xmm2, %xmm3");
4062         asm volatile("vaesenc %ymm1, %ymm2, %ymm3");
4063         asm volatile("vaesenc %zmm1, %zmm2, %zmm3");
4064         asm volatile("vaesenc 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
4065
4066         /* AVX-512: Op code 0f 38 dd */
4067
4068         asm volatile("vaesenclast %xmm1, %xmm2, %xmm3");
4069         asm volatile("vaesenclast %ymm1, %ymm2, %ymm3");
4070         asm volatile("vaesenclast %zmm1, %zmm2, %zmm3");
4071         asm volatile("vaesenclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
4072
4073         /* AVX-512: Op code 0f 38 de */
4074
4075         asm volatile("vaesdec %xmm1, %xmm2, %xmm3");
4076         asm volatile("vaesdec %ymm1, %ymm2, %ymm3");
4077         asm volatile("vaesdec %zmm1, %zmm2, %zmm3");
4078         asm volatile("vaesdec 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
4079
4080         /* AVX-512: Op code 0f 38 df */
4081
4082         asm volatile("vaesdeclast %xmm1, %xmm2, %xmm3");
4083         asm volatile("vaesdeclast %ymm1, %ymm2, %ymm3");
4084         asm volatile("vaesdeclast %zmm1, %zmm2, %zmm3");
4085         asm volatile("vaesdeclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
4086
4087         /* AVX-512: Op code 0f 3a 03 */
4088
4089         asm volatile("valignd $0x12,%zmm5,%zmm6,%zmm7");
4090         asm volatile("valignq $0x12,%zmm5,%zmm6,%zmm7");
4091
4092         /* AVX-512: Op code 0f 3a 08 */
4093
4094         asm volatile("vroundps $0x5,%ymm6,%ymm2");
4095         asm volatile("vrndscaleps $0x12,%zmm5,%zmm6");
4096
4097         /* AVX-512: Op code 0f 3a 09 */
4098
4099         asm volatile("vroundpd $0x5,%ymm6,%ymm2");
4100         asm volatile("vrndscalepd $0x12,%zmm5,%zmm6");
4101
4102         /* AVX-512: Op code 0f 3a 0a */
4103
4104         asm volatile("vroundss $0x5,%xmm4,%xmm6,%xmm2");
4105         asm volatile("vrndscaless $0x12,%xmm4,%xmm5,%xmm6{%k7}");
4106
4107         /* AVX-512: Op code 0f 3a 0b */
4108
4109         asm volatile("vroundsd $0x5,%xmm4,%xmm6,%xmm2");
4110         asm volatile("vrndscalesd $0x12,%xmm4,%xmm5,%xmm6{%k7}");
4111
4112         /* AVX-512: Op code 0f 3a 18 */
4113
4114         asm volatile("vinsertf128 $0x5,%xmm4,%ymm4,%ymm6");
4115         asm volatile("vinsertf32x4 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
4116         asm volatile("vinsertf64x2 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
4117
4118         /* AVX-512: Op code 0f 3a 19 */
4119
4120         asm volatile("vextractf128 $0x5,%ymm4,%xmm4");
4121         asm volatile("vextractf32x4 $0x12,%zmm5,%xmm6{%k7}");
4122         asm volatile("vextractf64x2 $0x12,%zmm5,%xmm6{%k7}");
4123
4124         /* AVX-512: Op code 0f 3a 1a */
4125
4126         asm volatile("vinsertf32x8 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
4127         asm volatile("vinsertf64x4 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
4128
4129         /* AVX-512: Op code 0f 3a 1b */
4130
4131         asm volatile("vextractf32x8 $0x12,%zmm6,%ymm7{%k7}");
4132         asm volatile("vextractf64x4 $0x12,%zmm6,%ymm7{%k7}");
4133
4134         /* AVX-512: Op code 0f 3a 1e */
4135
4136         asm volatile("vpcmpud $0x12,%zmm6,%zmm7,%k5");
4137         asm volatile("vpcmpuq $0x12,%zmm6,%zmm7,%k5");
4138
4139         /* AVX-512: Op code 0f 3a 1f */
4140
4141         asm volatile("vpcmpd $0x12,%zmm6,%zmm7,%k5");
4142         asm volatile("vpcmpq $0x12,%zmm6,%zmm7,%k5");
4143
4144         /* AVX-512: Op code 0f 3a 23 */
4145
4146         asm volatile("vshuff32x4 $0x12,%zmm5,%zmm6,%zmm7");
4147         asm volatile("vshuff64x2 $0x12,%zmm5,%zmm6,%zmm7");
4148
4149         /* AVX-512: Op code 0f 3a 25 */
4150
4151         asm volatile("vpternlogd $0x12,%zmm5,%zmm6,%zmm7");
4152         asm volatile("vpternlogq $0x12,%zmm5,%zmm6,%zmm7");
4153
4154         /* AVX-512: Op code 0f 3a 26 */
4155
4156         asm volatile("vgetmantps $0x12,%zmm6,%zmm7");
4157         asm volatile("vgetmantpd $0x12,%zmm6,%zmm7");
4158
4159         /* AVX-512: Op code 0f 3a 27 */
4160
4161         asm volatile("vgetmantss $0x12,%xmm5,%xmm6,%xmm7{%k7}");
4162         asm volatile("vgetmantsd $0x12,%xmm5,%xmm6,%xmm7{%k7}");
4163
4164         /* AVX-512: Op code 0f 3a 38 */
4165
4166         asm volatile("vinserti128 $0x5,%xmm4,%ymm4,%ymm6");
4167         asm volatile("vinserti32x4 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
4168         asm volatile("vinserti64x2 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
4169
4170         /* AVX-512: Op code 0f 3a 39 */
4171
4172         asm volatile("vextracti128 $0x5,%ymm4,%xmm6");
4173         asm volatile("vextracti32x4 $0x12,%zmm5,%xmm6{%k7}");
4174         asm volatile("vextracti64x2 $0x12,%zmm5,%xmm6{%k7}");
4175
4176         /* AVX-512: Op code 0f 3a 3a */
4177
4178         asm volatile("vinserti32x8 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
4179         asm volatile("vinserti64x4 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
4180
4181         /* AVX-512: Op code 0f 3a 3b */
4182
4183         asm volatile("vextracti32x8 $0x12,%zmm6,%ymm7{%k7}");
4184         asm volatile("vextracti64x4 $0x12,%zmm6,%ymm7{%k7}");
4185
4186         /* AVX-512: Op code 0f 3a 3e */
4187
4188         asm volatile("vpcmpub $0x12,%zmm6,%zmm7,%k5");
4189         asm volatile("vpcmpuw $0x12,%zmm6,%zmm7,%k5");
4190
4191         /* AVX-512: Op code 0f 3a 3f */
4192
4193         asm volatile("vpcmpb $0x12,%zmm6,%zmm7,%k5");
4194         asm volatile("vpcmpw $0x12,%zmm6,%zmm7,%k5");
4195
4196         /* AVX-512: Op code 0f 3a 42 */
4197
4198         asm volatile("vmpsadbw $0x5,%ymm4,%ymm6,%ymm2");
4199         asm volatile("vdbpsadbw $0x12,%zmm4,%zmm5,%zmm6");
4200
4201         /* AVX-512: Op code 0f 3a 43 */
4202
4203         asm volatile("vshufi32x4 $0x12,%zmm5,%zmm6,%zmm7");
4204         asm volatile("vshufi64x2 $0x12,%zmm5,%zmm6,%zmm7");
4205
4206         /* AVX-512: Op code 0f 3a 44 */
4207
4208         asm volatile("vpclmulqdq $0x12,%xmm1,%xmm2,%xmm3");
4209         asm volatile("vpclmulqdq $0x12,%ymm1,%ymm2,%ymm3");
4210         asm volatile("vpclmulqdq $0x12,%zmm1,%zmm2,%zmm3");
4211
4212         /* AVX-512: Op code 0f 3a 50 */
4213
4214         asm volatile("vrangeps $0x12,%zmm5,%zmm6,%zmm7");
4215         asm volatile("vrangepd $0x12,%zmm5,%zmm6,%zmm7");
4216
4217         /* AVX-512: Op code 0f 3a 51 */
4218
4219         asm volatile("vrangess $0x12,%xmm5,%xmm6,%xmm7");
4220         asm volatile("vrangesd $0x12,%xmm5,%xmm6,%xmm7");
4221
4222         /* AVX-512: Op code 0f 3a 54 */
4223
4224         asm volatile("vfixupimmps $0x12,%zmm5,%zmm6,%zmm7");
4225         asm volatile("vfixupimmpd $0x12,%zmm5,%zmm6,%zmm7");
4226
4227         /* AVX-512: Op code 0f 3a 55 */
4228
4229         asm volatile("vfixupimmss $0x12,%xmm5,%xmm6,%xmm7{%k7}");
4230         asm volatile("vfixupimmsd $0x12,%xmm5,%xmm6,%xmm7{%k7}");
4231
4232         /* AVX-512: Op code 0f 3a 56 */
4233
4234         asm volatile("vreduceps $0x12,%zmm6,%zmm7");
4235         asm volatile("vreducepd $0x12,%zmm6,%zmm7");
4236
4237         /* AVX-512: Op code 0f 3a 57 */
4238
4239         asm volatile("vreducess $0x12,%xmm5,%xmm6,%xmm7");
4240         asm volatile("vreducesd $0x12,%xmm5,%xmm6,%xmm7");
4241
4242         /* AVX-512: Op code 0f 3a 66 */
4243
4244         asm volatile("vfpclassps $0x12,%zmm7,%k5");
4245         asm volatile("vfpclasspd $0x12,%zmm7,%k5");
4246
4247         /* AVX-512: Op code 0f 3a 67 */
4248
4249         asm volatile("vfpclassss $0x12,%xmm7,%k5");
4250         asm volatile("vfpclasssd $0x12,%xmm7,%k5");
4251
4252         /* AVX-512: Op code 0f 3a 70 */
4253
4254         asm volatile("vpshldw $0x12,%xmm1,%xmm2,%xmm3");
4255         asm volatile("vpshldw $0x12,%ymm1,%ymm2,%ymm3");
4256         asm volatile("vpshldw $0x12,%zmm1,%zmm2,%zmm3");
4257
4258         /* AVX-512: Op code 0f 3a 71 */
4259
4260         asm volatile("vpshldd $0x12,%xmm1,%xmm2,%xmm3");
4261         asm volatile("vpshldd $0x12,%ymm1,%ymm2,%ymm3");
4262         asm volatile("vpshldd $0x12,%zmm1,%zmm2,%zmm3");
4263
4264         asm volatile("vpshldq $0x12,%xmm1,%xmm2,%xmm3");
4265         asm volatile("vpshldq $0x12,%ymm1,%ymm2,%ymm3");
4266         asm volatile("vpshldq $0x12,%zmm1,%zmm2,%zmm3");
4267
4268         /* AVX-512: Op code 0f 3a 72 */
4269
4270         asm volatile("vpshrdw $0x12,%xmm1,%xmm2,%xmm3");
4271         asm volatile("vpshrdw $0x12,%ymm1,%ymm2,%ymm3");
4272         asm volatile("vpshrdw $0x12,%zmm1,%zmm2,%zmm3");
4273
4274         /* AVX-512: Op code 0f 3a 73 */
4275
4276         asm volatile("vpshrdd $0x12,%xmm1,%xmm2,%xmm3");
4277         asm volatile("vpshrdd $0x12,%ymm1,%ymm2,%ymm3");
4278         asm volatile("vpshrdd $0x12,%zmm1,%zmm2,%zmm3");
4279
4280         asm volatile("vpshrdq $0x12,%xmm1,%xmm2,%xmm3");
4281         asm volatile("vpshrdq $0x12,%ymm1,%ymm2,%ymm3");
4282         asm volatile("vpshrdq $0x12,%zmm1,%zmm2,%zmm3");
4283
4284         /* AVX-512: Op code 0f 3a ce */
4285
4286         asm volatile("gf2p8affineqb $0x12,%xmm1,%xmm3");
4287
4288         asm volatile("vgf2p8affineqb $0x12,%xmm1,%xmm2,%xmm3");
4289         asm volatile("vgf2p8affineqb $0x12,%ymm1,%ymm2,%ymm3");
4290         asm volatile("vgf2p8affineqb $0x12,%zmm1,%zmm2,%zmm3");
4291
4292         /* AVX-512: Op code 0f 3a cf */
4293
4294         asm volatile("gf2p8affineinvqb $0x12,%xmm1,%xmm3");
4295
4296         asm volatile("vgf2p8affineinvqb $0x12,%xmm1,%xmm2,%xmm3");
4297         asm volatile("vgf2p8affineinvqb $0x12,%ymm1,%ymm2,%ymm3");
4298         asm volatile("vgf2p8affineinvqb $0x12,%zmm1,%zmm2,%zmm3");
4299
4300         /* AVX-512: Op code 0f 72 (Grp13) */
4301
4302         asm volatile("vprord $0x12,%zmm5,%zmm6");
4303         asm volatile("vprorq $0x12,%zmm5,%zmm6");
4304         asm volatile("vprold $0x12,%zmm5,%zmm6");
4305         asm volatile("vprolq $0x12,%zmm5,%zmm6");
4306         asm volatile("psrad  $0x2,%mm6");
4307         asm volatile("vpsrad $0x5,%ymm6,%ymm2");
4308         asm volatile("vpsrad $0x5,%zmm6,%zmm2");
4309         asm volatile("vpsraq $0x5,%zmm6,%zmm2");
4310
4311         /* AVX-512: Op code 0f 38 c6 (Grp18) */
4312
4313         asm volatile("vgatherpf0dps 0x7b(%ebp,%zmm7,8){%k1}");
4314         asm volatile("vgatherpf0dpd 0x7b(%ebp,%ymm7,8){%k1}");
4315         asm volatile("vgatherpf1dps 0x7b(%ebp,%zmm7,8){%k1}");
4316         asm volatile("vgatherpf1dpd 0x7b(%ebp,%ymm7,8){%k1}");
4317         asm volatile("vscatterpf0dps 0x7b(%ebp,%zmm7,8){%k1}");
4318         asm volatile("vscatterpf0dpd 0x7b(%ebp,%ymm7,8){%k1}");
4319         asm volatile("vscatterpf1dps 0x7b(%ebp,%zmm7,8){%k1}");
4320         asm volatile("vscatterpf1dpd 0x7b(%ebp,%ymm7,8){%k1}");
4321
4322         /* AVX-512: Op code 0f 38 c7 (Grp19) */
4323
4324         asm volatile("vgatherpf0qps 0x7b(%ebp,%zmm7,8){%k1}");
4325         asm volatile("vgatherpf0qpd 0x7b(%ebp,%zmm7,8){%k1}");
4326         asm volatile("vgatherpf1qps 0x7b(%ebp,%zmm7,8){%k1}");
4327         asm volatile("vgatherpf1qpd 0x7b(%ebp,%zmm7,8){%k1}");
4328         asm volatile("vscatterpf0qps 0x7b(%ebp,%zmm7,8){%k1}");
4329         asm volatile("vscatterpf0qpd 0x7b(%ebp,%zmm7,8){%k1}");
4330         asm volatile("vscatterpf1qps 0x7b(%ebp,%zmm7,8){%k1}");
4331         asm volatile("vscatterpf1qpd 0x7b(%ebp,%zmm7,8){%k1}");
4332
4333         /* AVX-512: Examples */
4334
4335         asm volatile("vaddpd %zmm4,%zmm5,%zmm6");
4336         asm volatile("vaddpd %zmm4,%zmm5,%zmm6{%k7}");
4337         asm volatile("vaddpd %zmm4,%zmm5,%zmm6{%k7}{z}");
4338         asm volatile("vaddpd {rn-sae},%zmm4,%zmm5,%zmm6");
4339         asm volatile("vaddpd {ru-sae},%zmm4,%zmm5,%zmm6");
4340         asm volatile("vaddpd {rd-sae},%zmm4,%zmm5,%zmm6");
4341         asm volatile("vaddpd {rz-sae},%zmm4,%zmm5,%zmm6");
4342         asm volatile("vaddpd (%ecx),%zmm5,%zmm6");
4343         asm volatile("vaddpd 0x123(%eax,%ecx,8),%zmm5,%zmm6");
4344         asm volatile("vaddpd (%ecx){1to8},%zmm5,%zmm6");
4345         asm volatile("vaddpd 0x1fc0(%edx),%zmm5,%zmm6");
4346         asm volatile("vaddpd 0x3f8(%edx){1to8},%zmm5,%zmm6");
4347         asm volatile("vcmpeq_uqps 0x1fc(%edx){1to16},%zmm6,%k5");
4348         asm volatile("vcmpltsd 0x123(%eax,%ecx,8),%xmm3,%k5{%k7}");
4349         asm volatile("vcmplesd {sae},%xmm4,%xmm5,%k5{%k7}");
4350         asm volatile("vgetmantss $0x5b,0x123(%eax,%ecx,8),%xmm4,%xmm5{%k7}");
4351
4352         /* bndmk m32, bnd */
4353
4354         asm volatile("bndmk (%eax), %bnd0");
4355         asm volatile("bndmk (0x12345678), %bnd0");
4356         asm volatile("bndmk (%eax), %bnd3");
4357         asm volatile("bndmk (%ecx,%eax,1), %bnd0");
4358         asm volatile("bndmk 0x12345678(,%eax,1), %bnd0");
4359         asm volatile("bndmk (%eax,%ecx,1), %bnd0");
4360         asm volatile("bndmk (%eax,%ecx,8), %bnd0");
4361         asm volatile("bndmk 0x12(%eax), %bnd0");
4362         asm volatile("bndmk 0x12(%ebp), %bnd0");
4363         asm volatile("bndmk 0x12(%ecx,%eax,1), %bnd0");
4364         asm volatile("bndmk 0x12(%ebp,%eax,1), %bnd0");
4365         asm volatile("bndmk 0x12(%eax,%ecx,1), %bnd0");
4366         asm volatile("bndmk 0x12(%eax,%ecx,8), %bnd0");
4367         asm volatile("bndmk 0x12345678(%eax), %bnd0");
4368         asm volatile("bndmk 0x12345678(%ebp), %bnd0");
4369         asm volatile("bndmk 0x12345678(%ecx,%eax,1), %bnd0");
4370         asm volatile("bndmk 0x12345678(%ebp,%eax,1), %bnd0");
4371         asm volatile("bndmk 0x12345678(%eax,%ecx,1), %bnd0");
4372         asm volatile("bndmk 0x12345678(%eax,%ecx,8), %bnd0");
4373
4374         /* bndcl r/m32, bnd */
4375
4376         asm volatile("bndcl (%eax), %bnd0");
4377         asm volatile("bndcl (0x12345678), %bnd0");
4378         asm volatile("bndcl (%eax), %bnd3");
4379         asm volatile("bndcl (%ecx,%eax,1), %bnd0");
4380         asm volatile("bndcl 0x12345678(,%eax,1), %bnd0");
4381         asm volatile("bndcl (%eax,%ecx,1), %bnd0");
4382         asm volatile("bndcl (%eax,%ecx,8), %bnd0");
4383         asm volatile("bndcl 0x12(%eax), %bnd0");
4384         asm volatile("bndcl 0x12(%ebp), %bnd0");
4385         asm volatile("bndcl 0x12(%ecx,%eax,1), %bnd0");
4386         asm volatile("bndcl 0x12(%ebp,%eax,1), %bnd0");
4387         asm volatile("bndcl 0x12(%eax,%ecx,1), %bnd0");
4388         asm volatile("bndcl 0x12(%eax,%ecx,8), %bnd0");
4389         asm volatile("bndcl 0x12345678(%eax), %bnd0");
4390         asm volatile("bndcl 0x12345678(%ebp), %bnd0");
4391         asm volatile("bndcl 0x12345678(%ecx,%eax,1), %bnd0");
4392         asm volatile("bndcl 0x12345678(%ebp,%eax,1), %bnd0");
4393         asm volatile("bndcl 0x12345678(%eax,%ecx,1), %bnd0");
4394         asm volatile("bndcl 0x12345678(%eax,%ecx,8), %bnd0");
4395         asm volatile("bndcl %eax, %bnd0");
4396
4397         /* bndcu r/m32, bnd */
4398
4399         asm volatile("bndcu (%eax), %bnd0");
4400         asm volatile("bndcu (0x12345678), %bnd0");
4401         asm volatile("bndcu (%eax), %bnd3");
4402         asm volatile("bndcu (%ecx,%eax,1), %bnd0");
4403         asm volatile("bndcu 0x12345678(,%eax,1), %bnd0");
4404         asm volatile("bndcu (%eax,%ecx,1), %bnd0");
4405         asm volatile("bndcu (%eax,%ecx,8), %bnd0");
4406         asm volatile("bndcu 0x12(%eax), %bnd0");
4407         asm volatile("bndcu 0x12(%ebp), %bnd0");
4408         asm volatile("bndcu 0x12(%ecx,%eax,1), %bnd0");
4409         asm volatile("bndcu 0x12(%ebp,%eax,1), %bnd0");
4410         asm volatile("bndcu 0x12(%eax,%ecx,1), %bnd0");
4411         asm volatile("bndcu 0x12(%eax,%ecx,8), %bnd0");
4412         asm volatile("bndcu 0x12345678(%eax), %bnd0");
4413         asm volatile("bndcu 0x12345678(%ebp), %bnd0");
4414         asm volatile("bndcu 0x12345678(%ecx,%eax,1), %bnd0");
4415         asm volatile("bndcu 0x12345678(%ebp,%eax,1), %bnd0");
4416         asm volatile("bndcu 0x12345678(%eax,%ecx,1), %bnd0");
4417         asm volatile("bndcu 0x12345678(%eax,%ecx,8), %bnd0");
4418         asm volatile("bndcu %eax, %bnd0");
4419
4420         /* bndcn r/m32, bnd */
4421
4422         asm volatile("bndcn (%eax), %bnd0");
4423         asm volatile("bndcn (0x12345678), %bnd0");
4424         asm volatile("bndcn (%eax), %bnd3");
4425         asm volatile("bndcn (%ecx,%eax,1), %bnd0");
4426         asm volatile("bndcn 0x12345678(,%eax,1), %bnd0");
4427         asm volatile("bndcn (%eax,%ecx,1), %bnd0");
4428         asm volatile("bndcn (%eax,%ecx,8), %bnd0");
4429         asm volatile("bndcn 0x12(%eax), %bnd0");
4430         asm volatile("bndcn 0x12(%ebp), %bnd0");
4431         asm volatile("bndcn 0x12(%ecx,%eax,1), %bnd0");
4432         asm volatile("bndcn 0x12(%ebp,%eax,1), %bnd0");
4433         asm volatile("bndcn 0x12(%eax,%ecx,1), %bnd0");
4434         asm volatile("bndcn 0x12(%eax,%ecx,8), %bnd0");
4435         asm volatile("bndcn 0x12345678(%eax), %bnd0");
4436         asm volatile("bndcn 0x12345678(%ebp), %bnd0");
4437         asm volatile("bndcn 0x12345678(%ecx,%eax,1), %bnd0");
4438         asm volatile("bndcn 0x12345678(%ebp,%eax,1), %bnd0");
4439         asm volatile("bndcn 0x12345678(%eax,%ecx,1), %bnd0");
4440         asm volatile("bndcn 0x12345678(%eax,%ecx,8), %bnd0");
4441         asm volatile("bndcn %eax, %bnd0");
4442
4443         /* bndmov m64, bnd */
4444
4445         asm volatile("bndmov (%eax), %bnd0");
4446         asm volatile("bndmov (0x12345678), %bnd0");
4447         asm volatile("bndmov (%eax), %bnd3");
4448         asm volatile("bndmov (%ecx,%eax,1), %bnd0");
4449         asm volatile("bndmov 0x12345678(,%eax,1), %bnd0");
4450         asm volatile("bndmov (%eax,%ecx,1), %bnd0");
4451         asm volatile("bndmov (%eax,%ecx,8), %bnd0");
4452         asm volatile("bndmov 0x12(%eax), %bnd0");
4453         asm volatile("bndmov 0x12(%ebp), %bnd0");
4454         asm volatile("bndmov 0x12(%ecx,%eax,1), %bnd0");
4455         asm volatile("bndmov 0x12(%ebp,%eax,1), %bnd0");
4456         asm volatile("bndmov 0x12(%eax,%ecx,1), %bnd0");
4457         asm volatile("bndmov 0x12(%eax,%ecx,8), %bnd0");
4458         asm volatile("bndmov 0x12345678(%eax), %bnd0");
4459         asm volatile("bndmov 0x12345678(%ebp), %bnd0");
4460         asm volatile("bndmov 0x12345678(%ecx,%eax,1), %bnd0");
4461         asm volatile("bndmov 0x12345678(%ebp,%eax,1), %bnd0");
4462         asm volatile("bndmov 0x12345678(%eax,%ecx,1), %bnd0");
4463         asm volatile("bndmov 0x12345678(%eax,%ecx,8), %bnd0");
4464
4465         /* bndmov bnd, m64 */
4466
4467         asm volatile("bndmov %bnd0, (%eax)");
4468         asm volatile("bndmov %bnd0, (0x12345678)");
4469         asm volatile("bndmov %bnd3, (%eax)");
4470         asm volatile("bndmov %bnd0, (%ecx,%eax,1)");
4471         asm volatile("bndmov %bnd0, 0x12345678(,%eax,1)");
4472         asm volatile("bndmov %bnd0, (%eax,%ecx,1)");
4473         asm volatile("bndmov %bnd0, (%eax,%ecx,8)");
4474         asm volatile("bndmov %bnd0, 0x12(%eax)");
4475         asm volatile("bndmov %bnd0, 0x12(%ebp)");
4476         asm volatile("bndmov %bnd0, 0x12(%ecx,%eax,1)");
4477         asm volatile("bndmov %bnd0, 0x12(%ebp,%eax,1)");
4478         asm volatile("bndmov %bnd0, 0x12(%eax,%ecx,1)");
4479         asm volatile("bndmov %bnd0, 0x12(%eax,%ecx,8)");
4480         asm volatile("bndmov %bnd0, 0x12345678(%eax)");
4481         asm volatile("bndmov %bnd0, 0x12345678(%ebp)");
4482         asm volatile("bndmov %bnd0, 0x12345678(%ecx,%eax,1)");
4483         asm volatile("bndmov %bnd0, 0x12345678(%ebp,%eax,1)");
4484         asm volatile("bndmov %bnd0, 0x12345678(%eax,%ecx,1)");
4485         asm volatile("bndmov %bnd0, 0x12345678(%eax,%ecx,8)");
4486
4487         /* bndmov bnd2, bnd1 */
4488
4489         asm volatile("bndmov %bnd0, %bnd1");
4490         asm volatile("bndmov %bnd1, %bnd0");
4491
4492         /* bndldx mib, bnd */
4493
4494         asm volatile("bndldx (%eax), %bnd0");
4495         asm volatile("bndldx (0x12345678), %bnd0");
4496         asm volatile("bndldx (%eax), %bnd3");
4497         asm volatile("bndldx (%ecx,%eax,1), %bnd0");
4498         asm volatile("bndldx 0x12345678(,%eax,1), %bnd0");
4499         asm volatile("bndldx (%eax,%ecx,1), %bnd0");
4500         asm volatile("bndldx 0x12(%eax), %bnd0");
4501         asm volatile("bndldx 0x12(%ebp), %bnd0");
4502         asm volatile("bndldx 0x12(%ecx,%eax,1), %bnd0");
4503         asm volatile("bndldx 0x12(%ebp,%eax,1), %bnd0");
4504         asm volatile("bndldx 0x12(%eax,%ecx,1), %bnd0");
4505         asm volatile("bndldx 0x12345678(%eax), %bnd0");
4506         asm volatile("bndldx 0x12345678(%ebp), %bnd0");
4507         asm volatile("bndldx 0x12345678(%ecx,%eax,1), %bnd0");
4508         asm volatile("bndldx 0x12345678(%ebp,%eax,1), %bnd0");
4509         asm volatile("bndldx 0x12345678(%eax,%ecx,1), %bnd0");
4510
4511         /* bndstx bnd, mib */
4512
4513         asm volatile("bndstx %bnd0, (%eax)");
4514         asm volatile("bndstx %bnd0, (0x12345678)");
4515         asm volatile("bndstx %bnd3, (%eax)");
4516         asm volatile("bndstx %bnd0, (%ecx,%eax,1)");
4517         asm volatile("bndstx %bnd0, 0x12345678(,%eax,1)");
4518         asm volatile("bndstx %bnd0, (%eax,%ecx,1)");
4519         asm volatile("bndstx %bnd0, 0x12(%eax)");
4520         asm volatile("bndstx %bnd0, 0x12(%ebp)");
4521         asm volatile("bndstx %bnd0, 0x12(%ecx,%eax,1)");
4522         asm volatile("bndstx %bnd0, 0x12(%ebp,%eax,1)");
4523         asm volatile("bndstx %bnd0, 0x12(%eax,%ecx,1)");
4524         asm volatile("bndstx %bnd0, 0x12345678(%eax)");
4525         asm volatile("bndstx %bnd0, 0x12345678(%ebp)");
4526         asm volatile("bndstx %bnd0, 0x12345678(%ecx,%eax,1)");
4527         asm volatile("bndstx %bnd0, 0x12345678(%ebp,%eax,1)");
4528         asm volatile("bndstx %bnd0, 0x12345678(%eax,%ecx,1)");
4529
4530         /* bnd prefix on call, ret, jmp and all jcc */
4531
4532         asm volatile("bnd call label1");  /* Expecting: call unconditional 0xfffffffc */
4533         asm volatile("bnd call *(%eax)"); /* Expecting: call indirect      0 */
4534         asm volatile("bnd ret");          /* Expecting: ret  indirect      0 */
4535         asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0xfffffffc */
4536         asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0xfffffffc */
4537         asm volatile("bnd jmp *(%ecx)");  /* Expecting: jmp  indirect      0 */
4538         asm volatile("bnd jne label1");   /* Expecting: jcc  conditional   0xfffffffc */
4539
4540         /* sha1rnds4 imm8, xmm2/m128, xmm1 */
4541
4542         asm volatile("sha1rnds4 $0x0, %xmm1, %xmm0");
4543         asm volatile("sha1rnds4 $0x91, %xmm7, %xmm2");
4544         asm volatile("sha1rnds4 $0x91, (%eax), %xmm0");
4545         asm volatile("sha1rnds4 $0x91, (0x12345678), %xmm0");
4546         asm volatile("sha1rnds4 $0x91, (%eax), %xmm3");
4547         asm volatile("sha1rnds4 $0x91, (%ecx,%eax,1), %xmm0");
4548         asm volatile("sha1rnds4 $0x91, 0x12345678(,%eax,1), %xmm0");
4549         asm volatile("sha1rnds4 $0x91, (%eax,%ecx,1), %xmm0");
4550         asm volatile("sha1rnds4 $0x91, (%eax,%ecx,8), %xmm0");
4551         asm volatile("sha1rnds4 $0x91, 0x12(%eax), %xmm0");
4552         asm volatile("sha1rnds4 $0x91, 0x12(%ebp), %xmm0");
4553         asm volatile("sha1rnds4 $0x91, 0x12(%ecx,%eax,1), %xmm0");
4554         asm volatile("sha1rnds4 $0x91, 0x12(%ebp,%eax,1), %xmm0");
4555         asm volatile("sha1rnds4 $0x91, 0x12(%eax,%ecx,1), %xmm0");
4556         asm volatile("sha1rnds4 $0x91, 0x12(%eax,%ecx,8), %xmm0");
4557         asm volatile("sha1rnds4 $0x91, 0x12345678(%eax), %xmm0");
4558         asm volatile("sha1rnds4 $0x91, 0x12345678(%ebp), %xmm0");
4559         asm volatile("sha1rnds4 $0x91, 0x12345678(%ecx,%eax,1), %xmm0");
4560         asm volatile("sha1rnds4 $0x91, 0x12345678(%ebp,%eax,1), %xmm0");
4561         asm volatile("sha1rnds4 $0x91, 0x12345678(%eax,%ecx,1), %xmm0");
4562         asm volatile("sha1rnds4 $0x91, 0x12345678(%eax,%ecx,8), %xmm0");
4563
4564         /* sha1nexte xmm2/m128, xmm1 */
4565
4566         asm volatile("sha1nexte %xmm1, %xmm0");
4567         asm volatile("sha1nexte %xmm7, %xmm2");
4568         asm volatile("sha1nexte (%eax), %xmm0");
4569         asm volatile("sha1nexte (0x12345678), %xmm0");
4570         asm volatile("sha1nexte (%eax), %xmm3");
4571         asm volatile("sha1nexte (%ecx,%eax,1), %xmm0");
4572         asm volatile("sha1nexte 0x12345678(,%eax,1), %xmm0");
4573         asm volatile("sha1nexte (%eax,%ecx,1), %xmm0");
4574         asm volatile("sha1nexte (%eax,%ecx,8), %xmm0");
4575         asm volatile("sha1nexte 0x12(%eax), %xmm0");
4576         asm volatile("sha1nexte 0x12(%ebp), %xmm0");
4577         asm volatile("sha1nexte 0x12(%ecx,%eax,1), %xmm0");
4578         asm volatile("sha1nexte 0x12(%ebp,%eax,1), %xmm0");
4579         asm volatile("sha1nexte 0x12(%eax,%ecx,1), %xmm0");
4580         asm volatile("sha1nexte 0x12(%eax,%ecx,8), %xmm0");
4581         asm volatile("sha1nexte 0x12345678(%eax), %xmm0");
4582         asm volatile("sha1nexte 0x12345678(%ebp), %xmm0");
4583         asm volatile("sha1nexte 0x12345678(%ecx,%eax,1), %xmm0");
4584         asm volatile("sha1nexte 0x12345678(%ebp,%eax,1), %xmm0");
4585         asm volatile("sha1nexte 0x12345678(%eax,%ecx,1), %xmm0");
4586         asm volatile("sha1nexte 0x12345678(%eax,%ecx,8), %xmm0");
4587
4588         /* sha1msg1 xmm2/m128, xmm1 */
4589
4590         asm volatile("sha1msg1 %xmm1, %xmm0");
4591         asm volatile("sha1msg1 %xmm7, %xmm2");
4592         asm volatile("sha1msg1 (%eax), %xmm0");
4593         asm volatile("sha1msg1 (0x12345678), %xmm0");
4594         asm volatile("sha1msg1 (%eax), %xmm3");
4595         asm volatile("sha1msg1 (%ecx,%eax,1), %xmm0");
4596         asm volatile("sha1msg1 0x12345678(,%eax,1), %xmm0");
4597         asm volatile("sha1msg1 (%eax,%ecx,1), %xmm0");
4598         asm volatile("sha1msg1 (%eax,%ecx,8), %xmm0");
4599         asm volatile("sha1msg1 0x12(%eax), %xmm0");
4600         asm volatile("sha1msg1 0x12(%ebp), %xmm0");
4601         asm volatile("sha1msg1 0x12(%ecx,%eax,1), %xmm0");
4602         asm volatile("sha1msg1 0x12(%ebp,%eax,1), %xmm0");
4603         asm volatile("sha1msg1 0x12(%eax,%ecx,1), %xmm0");
4604         asm volatile("sha1msg1 0x12(%eax,%ecx,8), %xmm0");
4605         asm volatile("sha1msg1 0x12345678(%eax), %xmm0");
4606         asm volatile("sha1msg1 0x12345678(%ebp), %xmm0");
4607         asm volatile("sha1msg1 0x12345678(%ecx,%eax,1), %xmm0");
4608         asm volatile("sha1msg1 0x12345678(%ebp,%eax,1), %xmm0");
4609         asm volatile("sha1msg1 0x12345678(%eax,%ecx,1), %xmm0");
4610         asm volatile("sha1msg1 0x12345678(%eax,%ecx,8), %xmm0");
4611
4612         /* sha1msg2 xmm2/m128, xmm1 */
4613
4614         asm volatile("sha1msg2 %xmm1, %xmm0");
4615         asm volatile("sha1msg2 %xmm7, %xmm2");
4616         asm volatile("sha1msg2 (%eax), %xmm0");
4617         asm volatile("sha1msg2 (0x12345678), %xmm0");
4618         asm volatile("sha1msg2 (%eax), %xmm3");
4619         asm volatile("sha1msg2 (%ecx,%eax,1), %xmm0");
4620         asm volatile("sha1msg2 0x12345678(,%eax,1), %xmm0");
4621         asm volatile("sha1msg2 (%eax,%ecx,1), %xmm0");
4622         asm volatile("sha1msg2 (%eax,%ecx,8), %xmm0");
4623         asm volatile("sha1msg2 0x12(%eax), %xmm0");
4624         asm volatile("sha1msg2 0x12(%ebp), %xmm0");
4625         asm volatile("sha1msg2 0x12(%ecx,%eax,1), %xmm0");
4626         asm volatile("sha1msg2 0x12(%ebp,%eax,1), %xmm0");
4627         asm volatile("sha1msg2 0x12(%eax,%ecx,1), %xmm0");
4628         asm volatile("sha1msg2 0x12(%eax,%ecx,8), %xmm0");
4629         asm volatile("sha1msg2 0x12345678(%eax), %xmm0");
4630         asm volatile("sha1msg2 0x12345678(%ebp), %xmm0");
4631         asm volatile("sha1msg2 0x12345678(%ecx,%eax,1), %xmm0");
4632         asm volatile("sha1msg2 0x12345678(%ebp,%eax,1), %xmm0");
4633         asm volatile("sha1msg2 0x12345678(%eax,%ecx,1), %xmm0");
4634         asm volatile("sha1msg2 0x12345678(%eax,%ecx,8), %xmm0");
4635
4636         /* sha256rnds2 <XMM0>, xmm2/m128, xmm1 */
4637         /* Note sha256rnds2 has an implicit operand 'xmm0' */
4638
4639         asm volatile("sha256rnds2 %xmm4, %xmm1");
4640         asm volatile("sha256rnds2 %xmm7, %xmm2");
4641         asm volatile("sha256rnds2 (%eax), %xmm1");
4642         asm volatile("sha256rnds2 (0x12345678), %xmm1");
4643         asm volatile("sha256rnds2 (%eax), %xmm3");
4644         asm volatile("sha256rnds2 (%ecx,%eax,1), %xmm1");
4645         asm volatile("sha256rnds2 0x12345678(,%eax,1), %xmm1");
4646         asm volatile("sha256rnds2 (%eax,%ecx,1), %xmm1");
4647         asm volatile("sha256rnds2 (%eax,%ecx,8), %xmm1");
4648         asm volatile("sha256rnds2 0x12(%eax), %xmm1");
4649         asm volatile("sha256rnds2 0x12(%ebp), %xmm1");
4650         asm volatile("sha256rnds2 0x12(%ecx,%eax,1), %xmm1");
4651         asm volatile("sha256rnds2 0x12(%ebp,%eax,1), %xmm1");
4652         asm volatile("sha256rnds2 0x12(%eax,%ecx,1), %xmm1");
4653         asm volatile("sha256rnds2 0x12(%eax,%ecx,8), %xmm1");
4654         asm volatile("sha256rnds2 0x12345678(%eax), %xmm1");
4655         asm volatile("sha256rnds2 0x12345678(%ebp), %xmm1");
4656         asm volatile("sha256rnds2 0x12345678(%ecx,%eax,1), %xmm1");
4657         asm volatile("sha256rnds2 0x12345678(%ebp,%eax,1), %xmm1");
4658         asm volatile("sha256rnds2 0x12345678(%eax,%ecx,1), %xmm1");
4659         asm volatile("sha256rnds2 0x12345678(%eax,%ecx,8), %xmm1");
4660
4661         /* sha256msg1 xmm2/m128, xmm1 */
4662
4663         asm volatile("sha256msg1 %xmm1, %xmm0");
4664         asm volatile("sha256msg1 %xmm7, %xmm2");
4665         asm volatile("sha256msg1 (%eax), %xmm0");
4666         asm volatile("sha256msg1 (0x12345678), %xmm0");
4667         asm volatile("sha256msg1 (%eax), %xmm3");
4668         asm volatile("sha256msg1 (%ecx,%eax,1), %xmm0");
4669         asm volatile("sha256msg1 0x12345678(,%eax,1), %xmm0");
4670         asm volatile("sha256msg1 (%eax,%ecx,1), %xmm0");
4671         asm volatile("sha256msg1 (%eax,%ecx,8), %xmm0");
4672         asm volatile("sha256msg1 0x12(%eax), %xmm0");
4673         asm volatile("sha256msg1 0x12(%ebp), %xmm0");
4674         asm volatile("sha256msg1 0x12(%ecx,%eax,1), %xmm0");
4675         asm volatile("sha256msg1 0x12(%ebp,%eax,1), %xmm0");
4676         asm volatile("sha256msg1 0x12(%eax,%ecx,1), %xmm0");
4677         asm volatile("sha256msg1 0x12(%eax,%ecx,8), %xmm0");
4678         asm volatile("sha256msg1 0x12345678(%eax), %xmm0");
4679         asm volatile("sha256msg1 0x12345678(%ebp), %xmm0");
4680         asm volatile("sha256msg1 0x12345678(%ecx,%eax,1), %xmm0");
4681         asm volatile("sha256msg1 0x12345678(%ebp,%eax,1), %xmm0");
4682         asm volatile("sha256msg1 0x12345678(%eax,%ecx,1), %xmm0");
4683         asm volatile("sha256msg1 0x12345678(%eax,%ecx,8), %xmm0");
4684
4685         /* sha256msg2 xmm2/m128, xmm1 */
4686
4687         asm volatile("sha256msg2 %xmm1, %xmm0");
4688         asm volatile("sha256msg2 %xmm7, %xmm2");
4689         asm volatile("sha256msg2 (%eax), %xmm0");
4690         asm volatile("sha256msg2 (0x12345678), %xmm0");
4691         asm volatile("sha256msg2 (%eax), %xmm3");
4692         asm volatile("sha256msg2 (%ecx,%eax,1), %xmm0");
4693         asm volatile("sha256msg2 0x12345678(,%eax,1), %xmm0");
4694         asm volatile("sha256msg2 (%eax,%ecx,1), %xmm0");
4695         asm volatile("sha256msg2 (%eax,%ecx,8), %xmm0");
4696         asm volatile("sha256msg2 0x12(%eax), %xmm0");
4697         asm volatile("sha256msg2 0x12(%ebp), %xmm0");
4698         asm volatile("sha256msg2 0x12(%ecx,%eax,1), %xmm0");
4699         asm volatile("sha256msg2 0x12(%ebp,%eax,1), %xmm0");
4700         asm volatile("sha256msg2 0x12(%eax,%ecx,1), %xmm0");
4701         asm volatile("sha256msg2 0x12(%eax,%ecx,8), %xmm0");
4702         asm volatile("sha256msg2 0x12345678(%eax), %xmm0");
4703         asm volatile("sha256msg2 0x12345678(%ebp), %xmm0");
4704         asm volatile("sha256msg2 0x12345678(%ecx,%eax,1), %xmm0");
4705         asm volatile("sha256msg2 0x12345678(%ebp,%eax,1), %xmm0");
4706         asm volatile("sha256msg2 0x12345678(%eax,%ecx,1), %xmm0");
4707         asm volatile("sha256msg2 0x12345678(%eax,%ecx,8), %xmm0");
4708
4709         /* clflushopt m8 */
4710
4711         asm volatile("clflushopt (%eax)");
4712         asm volatile("clflushopt (0x12345678)");
4713         asm volatile("clflushopt 0x12345678(%eax,%ecx,8)");
4714         /* Also check instructions in the same group encoding as clflushopt */
4715         asm volatile("clflush (%eax)");
4716         asm volatile("sfence");
4717
4718         /* clwb m8 */
4719
4720         asm volatile("clwb (%eax)");
4721         asm volatile("clwb (0x12345678)");
4722         asm volatile("clwb 0x12345678(%eax,%ecx,8)");
4723         /* Also check instructions in the same group encoding as clwb */
4724         asm volatile("xsaveopt (%eax)");
4725         asm volatile("mfence");
4726
4727         /* cldemote m8 */
4728
4729         asm volatile("cldemote (%eax)");
4730         asm volatile("cldemote (0x12345678)");
4731         asm volatile("cldemote 0x12345678(%eax,%ecx,8)");
4732
4733         /* xsavec mem */
4734
4735         asm volatile("xsavec (%eax)");
4736         asm volatile("xsavec (0x12345678)");
4737         asm volatile("xsavec 0x12345678(%eax,%ecx,8)");
4738
4739         /* xsaves mem */
4740
4741         asm volatile("xsaves (%eax)");
4742         asm volatile("xsaves (0x12345678)");
4743         asm volatile("xsaves 0x12345678(%eax,%ecx,8)");
4744
4745         /* xrstors mem */
4746
4747         asm volatile("xrstors (%eax)");
4748         asm volatile("xrstors (0x12345678)");
4749         asm volatile("xrstors 0x12345678(%eax,%ecx,8)");
4750
4751         /* ptwrite */
4752
4753         asm volatile("ptwrite (%eax)");
4754         asm volatile("ptwrite (0x12345678)");
4755         asm volatile("ptwrite 0x12345678(%eax,%ecx,8)");
4756
4757         asm volatile("ptwritel (%eax)");
4758         asm volatile("ptwritel (0x12345678)");
4759         asm volatile("ptwritel 0x12345678(%eax,%ecx,8)");
4760
4761         /* tpause */
4762
4763         asm volatile("tpause %ebx");
4764
4765         /* umonitor */
4766
4767         asm volatile("umonitor %ax");
4768         asm volatile("umonitor %eax");
4769
4770         /* umwait */
4771
4772         asm volatile("umwait %eax");
4773
4774         /* movdiri */
4775
4776         asm volatile("movdiri %eax,(%ebx)");
4777         asm volatile("movdiri %ecx,0x12345678(%eax)");
4778
4779         /* movdir64b */
4780
4781         asm volatile("movdir64b (%eax),%ebx");
4782         asm volatile("movdir64b 0x12345678(%eax),%ecx");
4783         asm volatile("movdir64b (%si),%bx");
4784         asm volatile("movdir64b 0x1234(%si),%cx");
4785
4786         /* enqcmd */
4787
4788         asm volatile("enqcmd (%eax),%ebx");
4789         asm volatile("enqcmd 0x12345678(%eax),%ecx");
4790         asm volatile("enqcmd (%si),%bx");
4791         asm volatile("enqcmd 0x1234(%si),%cx");
4792
4793         /* enqcmds */
4794
4795         asm volatile("enqcmds (%eax),%ebx");
4796         asm volatile("enqcmds 0x12345678(%eax),%ecx");
4797         asm volatile("enqcmds (%si),%bx");
4798         asm volatile("enqcmds 0x1234(%si),%cx");
4799
4800         /* incsspd */
4801
4802         asm volatile("incsspd %eax");
4803         /* Also check instructions in the same group encoding as incsspd */
4804         asm volatile("xrstor (%eax)");
4805         asm volatile("xrstor (0x12345678)");
4806         asm volatile("xrstor 0x12345678(%eax,%ecx,8)");
4807         asm volatile("lfence");
4808
4809         /* rdsspd */
4810
4811         asm volatile("rdsspd %eax");
4812
4813         /* saveprevssp */
4814
4815         asm volatile("saveprevssp");
4816
4817         /* rstorssp */
4818
4819         asm volatile("rstorssp (%eax)");
4820         asm volatile("rstorssp (0x12345678)");
4821         asm volatile("rstorssp 0x12345678(%eax,%ecx,8)");
4822
4823         /* wrssd */
4824
4825         asm volatile("wrssd %ecx,(%eax)");
4826         asm volatile("wrssd %edx,(0x12345678)");
4827         asm volatile("wrssd %edx,0x12345678(%eax,%ecx,8)");
4828
4829         /* wrussd */
4830
4831         asm volatile("wrussd %ecx,(%eax)");
4832         asm volatile("wrussd %edx,(0x12345678)");
4833         asm volatile("wrussd %edx,0x12345678(%eax,%ecx,8)");
4834
4835         /* setssbsy */
4836
4837         asm volatile("setssbsy");
4838         /* Also check instructions in the same group encoding as setssbsy */
4839         asm volatile("rdpkru");
4840         asm volatile("wrpkru");
4841
4842         /* clrssbsy */
4843
4844         asm volatile("clrssbsy (%eax)");
4845         asm volatile("clrssbsy (0x12345678)");
4846         asm volatile("clrssbsy 0x12345678(%eax,%ecx,8)");
4847
4848         /* endbr32/64 */
4849
4850         asm volatile("endbr32");
4851         asm volatile("endbr64");
4852
4853         /* call with/without notrack prefix */
4854
4855         asm volatile("call *%eax");                             /* Expecting: call indirect 0 */
4856         asm volatile("call *(%eax)");                           /* Expecting: call indirect 0 */
4857         asm volatile("call *(0x12345678)");                     /* Expecting: call indirect 0 */
4858         asm volatile("call *0x12345678(%eax,%ecx,8)");          /* Expecting: call indirect 0 */
4859
4860         asm volatile("bnd call *%eax");                         /* Expecting: call indirect 0 */
4861         asm volatile("bnd call *(%eax)");                       /* Expecting: call indirect 0 */
4862         asm volatile("bnd call *(0x12345678)");                 /* Expecting: call indirect 0 */
4863         asm volatile("bnd call *0x12345678(%eax,%ecx,8)");      /* Expecting: call indirect 0 */
4864
4865         asm volatile("notrack call *%eax");                     /* Expecting: call indirect 0 */
4866         asm volatile("notrack call *(%eax)");                   /* Expecting: call indirect 0 */
4867         asm volatile("notrack call *(0x12345678)");             /* Expecting: call indirect 0 */
4868         asm volatile("notrack call *0x12345678(%eax,%ecx,8)");  /* Expecting: call indirect 0 */
4869
4870         asm volatile("notrack bnd call *%eax");                 /* Expecting: call indirect 0 */
4871         asm volatile("notrack bnd call *(%eax)");               /* Expecting: call indirect 0 */
4872         asm volatile("notrack bnd call *(0x12345678)");         /* Expecting: call indirect 0 */
4873         asm volatile("notrack bnd call *0x12345678(%eax,%ecx,8)"); /* Expecting: call indirect 0 */
4874
4875         /* jmp with/without notrack prefix */
4876
4877         asm volatile("jmp *%eax");                              /* Expecting: jmp indirect 0 */
4878         asm volatile("jmp *(%eax)");                            /* Expecting: jmp indirect 0 */
4879         asm volatile("jmp *(0x12345678)");                      /* Expecting: jmp indirect 0 */
4880         asm volatile("jmp *0x12345678(%eax,%ecx,8)");           /* Expecting: jmp indirect 0 */
4881
4882         asm volatile("bnd jmp *%eax");                          /* Expecting: jmp indirect 0 */
4883         asm volatile("bnd jmp *(%eax)");                        /* Expecting: jmp indirect 0 */
4884         asm volatile("bnd jmp *(0x12345678)");                  /* Expecting: jmp indirect 0 */
4885         asm volatile("bnd jmp *0x12345678(%eax,%ecx,8)");       /* Expecting: jmp indirect 0 */
4886
4887         asm volatile("notrack jmp *%eax");                      /* Expecting: jmp indirect 0 */
4888         asm volatile("notrack jmp *(%eax)");                    /* Expecting: jmp indirect 0 */
4889         asm volatile("notrack jmp *(0x12345678)");              /* Expecting: jmp indirect 0 */
4890         asm volatile("notrack jmp *0x12345678(%eax,%ecx,8)");   /* Expecting: jmp indirect 0 */
4891
4892         asm volatile("notrack bnd jmp *%eax");                  /* Expecting: jmp indirect 0 */
4893         asm volatile("notrack bnd jmp *(%eax)");                /* Expecting: jmp indirect 0 */
4894         asm volatile("notrack bnd jmp *(0x12345678)");          /* Expecting: jmp indirect 0 */
4895         asm volatile("notrack bnd jmp *0x12345678(%eax,%ecx,8)"); /* Expecting: jmp indirect 0 */
4896
4897         /* AVX512-FP16 */
4898
4899         asm volatile("vaddph %zmm3, %zmm2, %zmm1");
4900         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4901         asm volatile("vaddph %xmm3, %xmm2, %xmm1");
4902         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4903         asm volatile("vaddph %ymm3, %ymm2, %ymm1");
4904         asm volatile("vaddph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4905         asm volatile("vaddsh %xmm3, %xmm2, %xmm1");
4906         asm volatile("vaddsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4907         asm volatile("vcmpph $0x12, %zmm3, %zmm2, %k5");
4908         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %zmm2, %k5");
4909         asm volatile("vcmpph $0x12, %xmm3, %xmm2, %k5");
4910         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
4911         asm volatile("vcmpph $0x12, %ymm3, %ymm2, %k5");
4912         asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %ymm2, %k5");
4913         asm volatile("vcmpsh $0x12, %xmm3, %xmm2, %k5");
4914         asm volatile("vcmpsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
4915         asm volatile("vcomish %xmm2, %xmm1");
4916         asm volatile("vcomish 0x12345678(%eax,%ecx,8), %xmm1");
4917         asm volatile("vcvtdq2ph %zmm2, %ymm1");
4918         asm volatile("vcvtdq2ph 0x12345678(%eax,%ecx,8), %ymm1");
4919         asm volatile("vcvtdq2ph %xmm2, %xmm1");
4920         asm volatile("vcvtdq2ph %ymm2, %xmm1");
4921         asm volatile("vcvtpd2ph %zmm2, %xmm1");
4922         asm volatile("vcvtpd2ph %xmm2, %xmm1");
4923         asm volatile("vcvtpd2ph %ymm2, %xmm1");
4924         asm volatile("vcvtph2dq %ymm2, %zmm1");
4925         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %zmm1");
4926         asm volatile("vcvtph2dq %xmm2, %xmm1");
4927         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %xmm1");
4928         asm volatile("vcvtph2dq %xmm2, %ymm1");
4929         asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %ymm1");
4930         asm volatile("vcvtph2pd %xmm2, %zmm1");
4931         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %zmm1");
4932         asm volatile("vcvtph2pd %xmm2, %xmm1");
4933         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %xmm1");
4934         asm volatile("vcvtph2pd %xmm2, %ymm1");
4935         asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %ymm1");
4936         asm volatile("vcvtph2ps %ymm2, %zmm1");
4937         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %zmm1");
4938         asm volatile("vcvtph2ps %xmm2, %xmm1");
4939         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
4940         asm volatile("vcvtph2ps %xmm2, %ymm1");
4941         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
4942         asm volatile("vcvtph2ps %xmm2, %xmm1");
4943         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
4944         asm volatile("vcvtph2ps %xmm2, %ymm1");
4945         asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
4946         asm volatile("vcvtph2psx %ymm2, %zmm1");
4947         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %zmm1");
4948         asm volatile("vcvtph2psx %xmm2, %xmm1");
4949         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %xmm1");
4950         asm volatile("vcvtph2psx %xmm2, %ymm1");
4951         asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %ymm1");
4952         asm volatile("vcvtph2qq %xmm2, %zmm1");
4953         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %zmm1");
4954         asm volatile("vcvtph2qq %xmm2, %xmm1");
4955         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %xmm1");
4956         asm volatile("vcvtph2qq %xmm2, %ymm1");
4957         asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %ymm1");
4958         asm volatile("vcvtph2udq %ymm2, %zmm1");
4959         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %zmm1");
4960         asm volatile("vcvtph2udq %xmm2, %xmm1");
4961         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %xmm1");
4962         asm volatile("vcvtph2udq %xmm2, %ymm1");
4963         asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %ymm1");
4964         asm volatile("vcvtph2uqq %xmm2, %zmm1");
4965         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
4966         asm volatile("vcvtph2uqq %xmm2, %xmm1");
4967         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
4968         asm volatile("vcvtph2uqq %xmm2, %ymm1");
4969         asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
4970         asm volatile("vcvtph2uw %zmm2, %zmm1");
4971         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %zmm1");
4972         asm volatile("vcvtph2uw %xmm2, %xmm1");
4973         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %xmm1");
4974         asm volatile("vcvtph2uw %ymm2, %ymm1");
4975         asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %ymm1");
4976         asm volatile("vcvtph2w %zmm2, %zmm1");
4977         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %zmm1");
4978         asm volatile("vcvtph2w %xmm2, %xmm1");
4979         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %xmm1");
4980         asm volatile("vcvtph2w %ymm2, %ymm1");
4981         asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %ymm1");
4982         asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%eax,%ecx,8)");
4983         asm volatile("vcvtps2ph $0x12, %zmm2, %ymm1");
4984         asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%eax,%ecx,8)");
4985         asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%eax,%ecx,8)");
4986         asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
4987         asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
4988         asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
4989         asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%eax,%ecx,8)");
4990         asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
4991         asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%eax,%ecx,8)");
4992         asm volatile("vcvtps2phx %zmm2, %ymm1");
4993         asm volatile("vcvtps2phx 0x12345678(%eax,%ecx,8), %ymm1");
4994         asm volatile("vcvtps2phx %xmm2, %xmm1");
4995         asm volatile("vcvtps2phx %ymm2, %xmm1");
4996         asm volatile("vcvtqq2ph %zmm2, %xmm1");
4997         asm volatile("vcvtqq2ph %xmm2, %xmm1");
4998         asm volatile("vcvtqq2ph %ymm2, %xmm1");
4999         asm volatile("vcvtsd2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5000         asm volatile("vcvtsh2sd 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5001         asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %eax");
5002         asm volatile("vcvtsh2ss 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5003         asm volatile("vcvtsh2usi %xmm1, %eax");
5004         asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %eax");
5005         asm volatile("vcvtsi2sh %eax, %xmm2, %xmm1");
5006         asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5007         asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5008         asm volatile("vcvtss2sh %xmm3, %xmm2, %xmm1");
5009         asm volatile("vcvtss2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5010         asm volatile("vcvttph2dq %ymm2, %zmm1");
5011         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %zmm1");
5012         asm volatile("vcvttph2dq %xmm2, %xmm1");
5013         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %xmm1");
5014         asm volatile("vcvttph2dq %xmm2, %ymm1");
5015         asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %ymm1");
5016         asm volatile("vcvttph2qq %xmm2, %zmm1");
5017         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %zmm1");
5018         asm volatile("vcvttph2qq %xmm2, %xmm1");
5019         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %xmm1");
5020         asm volatile("vcvttph2qq %xmm2, %ymm1");
5021         asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %ymm1");
5022         asm volatile("vcvttph2udq %ymm2, %zmm1");
5023         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %zmm1");
5024         asm volatile("vcvttph2udq %xmm2, %xmm1");
5025         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %xmm1");
5026         asm volatile("vcvttph2udq %xmm2, %ymm1");
5027         asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %ymm1");
5028         asm volatile("vcvttph2uqq %xmm2, %zmm1");
5029         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
5030         asm volatile("vcvttph2uqq %xmm2, %xmm1");
5031         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
5032         asm volatile("vcvttph2uqq %xmm2, %ymm1");
5033         asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
5034         asm volatile("vcvttph2uw %zmm2, %zmm1");
5035         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %zmm1");
5036         asm volatile("vcvttph2uw %xmm2, %xmm1");
5037         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %xmm1");
5038         asm volatile("vcvttph2uw %ymm2, %ymm1");
5039         asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %ymm1");
5040         asm volatile("vcvttph2w %zmm2, %zmm1");
5041         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %zmm1");
5042         asm volatile("vcvttph2w %xmm2, %xmm1");
5043         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %xmm1");
5044         asm volatile("vcvttph2w %ymm2, %ymm1");
5045         asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %ymm1");
5046         asm volatile("vcvttsh2si %xmm1, %eax");
5047         asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %eax");
5048         asm volatile("vcvttsh2usi %xmm1, %eax");
5049         asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %eax");
5050         asm volatile("vcvtudq2ph %zmm2, %ymm1");
5051         asm volatile("vcvtudq2ph 0x12345678(%eax,%ecx,8), %ymm1");
5052         asm volatile("vcvtudq2ph %xmm2, %xmm1");
5053         asm volatile("vcvtudq2ph %ymm2, %xmm1");
5054         asm volatile("vcvtuqq2ph %zmm2, %xmm1");
5055         asm volatile("vcvtuqq2ph %xmm2, %xmm1");
5056         asm volatile("vcvtuqq2ph %ymm2, %xmm1");
5057         asm volatile("vcvtusi2sh %eax, %xmm2, %xmm1");
5058         asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5059         asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5060         asm volatile("vcvtuw2ph %zmm2, %zmm1");
5061         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %zmm1");
5062         asm volatile("vcvtuw2ph %xmm2, %xmm1");
5063         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %xmm1");
5064         asm volatile("vcvtuw2ph %ymm2, %ymm1");
5065         asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %ymm1");
5066         asm volatile("vcvtw2ph %zmm2, %zmm1");
5067         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %zmm1");
5068         asm volatile("vcvtw2ph %xmm2, %xmm1");
5069         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %xmm1");
5070         asm volatile("vcvtw2ph %ymm2, %ymm1");
5071         asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %ymm1");
5072         asm volatile("vdivph %zmm3, %zmm2, %zmm1");
5073         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5074         asm volatile("vdivph %xmm3, %xmm2, %xmm1");
5075         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5076         asm volatile("vdivph %ymm3, %ymm2, %ymm1");
5077         asm volatile("vdivph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5078         asm volatile("vdivsh %xmm3, %xmm2, %xmm1");
5079         asm volatile("vdivsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5080         asm volatile("vfcmaddcph %zmm3, %zmm2, %zmm1");
5081         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5082         asm volatile("vfcmaddcph %xmm3, %xmm2, %xmm1");
5083         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5084         asm volatile("vfcmaddcph %ymm3, %ymm2, %ymm1");
5085         asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5086         asm volatile("vfcmaddcsh %xmm3, %xmm2, %xmm1");
5087         asm volatile("vfcmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5088         asm volatile("vfcmulcph %zmm3, %zmm2, %zmm1");
5089         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5090         asm volatile("vfcmulcph %xmm3, %xmm2, %xmm1");
5091         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5092         asm volatile("vfcmulcph %ymm3, %ymm2, %ymm1");
5093         asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5094         asm volatile("vfcmulcsh %xmm3, %xmm2, %xmm1");
5095         asm volatile("vfcmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5096         asm volatile("vfmadd132ph %zmm3, %zmm2, %zmm1");
5097         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5098         asm volatile("vfmadd132ph %xmm3, %xmm2, %xmm1");
5099         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5100         asm volatile("vfmadd132ph %ymm3, %ymm2, %ymm1");
5101         asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5102         asm volatile("vfmadd132sh %xmm3, %xmm2, %xmm1");
5103         asm volatile("vfmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5104         asm volatile("vfmadd213ph %zmm3, %zmm2, %zmm1");
5105         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5106         asm volatile("vfmadd213ph %xmm3, %xmm2, %xmm1");
5107         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5108         asm volatile("vfmadd213ph %ymm3, %ymm2, %ymm1");
5109         asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5110         asm volatile("vfmadd213sh %xmm3, %xmm2, %xmm1");
5111         asm volatile("vfmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5112         asm volatile("vfmadd231ph %zmm3, %zmm2, %zmm1");
5113         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5114         asm volatile("vfmadd231ph %xmm3, %xmm2, %xmm1");
5115         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5116         asm volatile("vfmadd231ph %ymm3, %ymm2, %ymm1");
5117         asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5118         asm volatile("vfmadd231sh %xmm3, %xmm2, %xmm1");
5119         asm volatile("vfmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5120         asm volatile("vfmaddcph %zmm3, %zmm2, %zmm1");
5121         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5122         asm volatile("vfmaddcph %xmm3, %xmm2, %xmm1");
5123         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5124         asm volatile("vfmaddcph %ymm3, %ymm2, %ymm1");
5125         asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5126         asm volatile("vfmaddcsh %xmm3, %xmm2, %xmm1");
5127         asm volatile("vfmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5128         asm volatile("vfmaddsub132ph %zmm3, %zmm2, %zmm1");
5129         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5130         asm volatile("vfmaddsub132ph %xmm3, %xmm2, %xmm1");
5131         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5132         asm volatile("vfmaddsub132ph %ymm3, %ymm2, %ymm1");
5133         asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5134         asm volatile("vfmaddsub213ph %zmm3, %zmm2, %zmm1");
5135         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5136         asm volatile("vfmaddsub213ph %xmm3, %xmm2, %xmm1");
5137         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5138         asm volatile("vfmaddsub213ph %ymm3, %ymm2, %ymm1");
5139         asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5140         asm volatile("vfmaddsub231ph %zmm3, %zmm2, %zmm1");
5141         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5142         asm volatile("vfmaddsub231ph %xmm3, %xmm2, %xmm1");
5143         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5144         asm volatile("vfmaddsub231ph %ymm3, %ymm2, %ymm1");
5145         asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5146         asm volatile("vfmsub132ph %zmm3, %zmm2, %zmm1");
5147         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5148         asm volatile("vfmsub132ph %xmm3, %xmm2, %xmm1");
5149         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5150         asm volatile("vfmsub132ph %ymm3, %ymm2, %ymm1");
5151         asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5152         asm volatile("vfmsub132sh %xmm3, %xmm2, %xmm1");
5153         asm volatile("vfmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5154         asm volatile("vfmsub213ph %zmm3, %zmm2, %zmm1");
5155         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5156         asm volatile("vfmsub213ph %xmm3, %xmm2, %xmm1");
5157         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5158         asm volatile("vfmsub213ph %ymm3, %ymm2, %ymm1");
5159         asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5160         asm volatile("vfmsub213sh %xmm3, %xmm2, %xmm1");
5161         asm volatile("vfmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5162         asm volatile("vfmsub231ph %zmm3, %zmm2, %zmm1");
5163         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5164         asm volatile("vfmsub231ph %xmm3, %xmm2, %xmm1");
5165         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5166         asm volatile("vfmsub231ph %ymm3, %ymm2, %ymm1");
5167         asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5168         asm volatile("vfmsub231sh %xmm3, %xmm2, %xmm1");
5169         asm volatile("vfmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5170         asm volatile("vfmsubadd132ph %zmm3, %zmm2, %zmm1");
5171         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5172         asm volatile("vfmsubadd132ph %xmm3, %xmm2, %xmm1");
5173         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5174         asm volatile("vfmsubadd132ph %ymm3, %ymm2, %ymm1");
5175         asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5176         asm volatile("vfmsubadd213ph %zmm3, %zmm2, %zmm1");
5177         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5178         asm volatile("vfmsubadd213ph %xmm3, %xmm2, %xmm1");
5179         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5180         asm volatile("vfmsubadd213ph %ymm3, %ymm2, %ymm1");
5181         asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5182         asm volatile("vfmsubadd231ph %zmm3, %zmm2, %zmm1");
5183         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5184         asm volatile("vfmsubadd231ph %xmm3, %xmm2, %xmm1");
5185         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5186         asm volatile("vfmsubadd231ph %ymm3, %ymm2, %ymm1");
5187         asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5188         asm volatile("vfmulcph %zmm3, %zmm2, %zmm1");
5189         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5190         asm volatile("vfmulcph %xmm3, %xmm2, %xmm1");
5191         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5192         asm volatile("vfmulcph %ymm3, %ymm2, %ymm1");
5193         asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5194         asm volatile("vfmulcsh %xmm3, %xmm2, %xmm1");
5195         asm volatile("vfmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5196         asm volatile("vfnmadd132ph %zmm3, %zmm2, %zmm1");
5197         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5198         asm volatile("vfnmadd132ph %xmm3, %xmm2, %xmm1");
5199         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5200         asm volatile("vfnmadd132ph %ymm3, %ymm2, %ymm1");
5201         asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5202         asm volatile("vfnmadd132sh %xmm3, %xmm2, %xmm1");
5203         asm volatile("vfnmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5204         asm volatile("vfnmadd213ph %zmm3, %zmm2, %zmm1");
5205         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5206         asm volatile("vfnmadd213ph %xmm3, %xmm2, %xmm1");
5207         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5208         asm volatile("vfnmadd213ph %ymm3, %ymm2, %ymm1");
5209         asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5210         asm volatile("vfnmadd213sh %xmm3, %xmm2, %xmm1");
5211         asm volatile("vfnmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5212         asm volatile("vfnmadd231ph %zmm3, %zmm2, %zmm1");
5213         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5214         asm volatile("vfnmadd231ph %xmm3, %xmm2, %xmm1");
5215         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5216         asm volatile("vfnmadd231ph %ymm3, %ymm2, %ymm1");
5217         asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5218         asm volatile("vfnmadd231sh %xmm3, %xmm2, %xmm1");
5219         asm volatile("vfnmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5220         asm volatile("vfnmsub132ph %zmm3, %zmm2, %zmm1");
5221         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5222         asm volatile("vfnmsub132ph %xmm3, %xmm2, %xmm1");
5223         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5224         asm volatile("vfnmsub132ph %ymm3, %ymm2, %ymm1");
5225         asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5226         asm volatile("vfnmsub132sh %xmm3, %xmm2, %xmm1");
5227         asm volatile("vfnmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5228         asm volatile("vfnmsub213ph %zmm3, %zmm2, %zmm1");
5229         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5230         asm volatile("vfnmsub213ph %xmm3, %xmm2, %xmm1");
5231         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5232         asm volatile("vfnmsub213ph %ymm3, %ymm2, %ymm1");
5233         asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5234         asm volatile("vfnmsub213sh %xmm3, %xmm2, %xmm1");
5235         asm volatile("vfnmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5236         asm volatile("vfnmsub231ph %zmm3, %zmm2, %zmm1");
5237         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5238         asm volatile("vfnmsub231ph %xmm3, %xmm2, %xmm1");
5239         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5240         asm volatile("vfnmsub231ph %ymm3, %ymm2, %ymm1");
5241         asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5242         asm volatile("vfnmsub231sh %xmm3, %xmm2, %xmm1");
5243         asm volatile("vfnmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5244         asm volatile("vfpclassph $0x12, %zmm1, %k5");
5245         asm volatile("vfpclassph $0x12, %xmm1, %k5");
5246         asm volatile("vfpclassph $0x12, %ymm1, %k5");
5247         asm volatile("vfpclasssh $0x12, %xmm1, %k5");
5248         asm volatile("vfpclasssh $0x12, 0x12345678(%eax,%ecx,8), %k5");
5249         asm volatile("vgetexpph %zmm2, %zmm1");
5250         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %zmm1");
5251         asm volatile("vgetexpph %xmm2, %xmm1");
5252         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %xmm1");
5253         asm volatile("vgetexpph %ymm2, %ymm1");
5254         asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %ymm1");
5255         asm volatile("vgetexpsh %xmm3, %xmm2, %xmm1");
5256         asm volatile("vgetexpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5257         asm volatile("vgetmantph $0x12, %zmm2, %zmm1");
5258         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
5259         asm volatile("vgetmantph $0x12, %xmm2, %xmm1");
5260         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
5261         asm volatile("vgetmantph $0x12, %ymm2, %ymm1");
5262         asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
5263         asm volatile("vgetmantsh $0x12, %xmm3, %xmm2, %xmm1");
5264         asm volatile("vgetmantsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5265         asm volatile("vmaxph %zmm3, %zmm2, %zmm1");
5266         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5267         asm volatile("vmaxph %xmm3, %xmm2, %xmm1");
5268         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5269         asm volatile("vmaxph %ymm3, %ymm2, %ymm1");
5270         asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5271         asm volatile("vmaxsh %xmm3, %xmm2, %xmm1");
5272         asm volatile("vmaxsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5273         asm volatile("vminph %zmm3, %zmm2, %zmm1");
5274         asm volatile("vminph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5275         asm volatile("vminph %xmm3, %xmm2, %xmm1");
5276         asm volatile("vminph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5277         asm volatile("vminph %ymm3, %ymm2, %ymm1");
5278         asm volatile("vminph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5279         asm volatile("vminsh %xmm3, %xmm2, %xmm1");
5280         asm volatile("vminsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5281         asm volatile("vmovsh %xmm1, 0x12345678(%eax,%ecx,8)");
5282         asm volatile("vmovsh 0x12345678(%eax,%ecx,8), %xmm1");
5283         asm volatile("vmovsh %xmm3, %xmm2, %xmm1");
5284         asm volatile("vmovw %xmm1, %eax");
5285         asm volatile("vmovw %xmm1, 0x12345678(%eax,%ecx,8)");
5286         asm volatile("vmovw %eax, %xmm1");
5287         asm volatile("vmovw 0x12345678(%eax,%ecx,8), %xmm1");
5288         asm volatile("vmulph %zmm3, %zmm2, %zmm1");
5289         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5290         asm volatile("vmulph %xmm3, %xmm2, %xmm1");
5291         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5292         asm volatile("vmulph %ymm3, %ymm2, %ymm1");
5293         asm volatile("vmulph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5294         asm volatile("vmulsh %xmm3, %xmm2, %xmm1");
5295         asm volatile("vmulsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5296         asm volatile("vrcpph %zmm2, %zmm1");
5297         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %zmm1");
5298         asm volatile("vrcpph %xmm2, %xmm1");
5299         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %xmm1");
5300         asm volatile("vrcpph %ymm2, %ymm1");
5301         asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %ymm1");
5302         asm volatile("vrcpsh %xmm3, %xmm2, %xmm1");
5303         asm volatile("vrcpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5304         asm volatile("vreduceph $0x12, %zmm2, %zmm1");
5305         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
5306         asm volatile("vreduceph $0x12, %xmm2, %xmm1");
5307         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
5308         asm volatile("vreduceph $0x12, %ymm2, %ymm1");
5309         asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
5310         asm volatile("vreducesh $0x12, %xmm3, %xmm2, %xmm1");
5311         asm volatile("vreducesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5312         asm volatile("vrndscaleph $0x12, %zmm2, %zmm1");
5313         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
5314         asm volatile("vrndscaleph $0x12, %xmm2, %xmm1");
5315         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
5316         asm volatile("vrndscaleph $0x12, %ymm2, %ymm1");
5317         asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
5318         asm volatile("vrndscalesh $0x12, %xmm3, %xmm2, %xmm1");
5319         asm volatile("vrndscalesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5320         asm volatile("vrsqrtph %zmm2, %zmm1");
5321         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
5322         asm volatile("vrsqrtph %xmm2, %xmm1");
5323         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
5324         asm volatile("vrsqrtph %ymm2, %ymm1");
5325         asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
5326         asm volatile("vrsqrtsh %xmm3, %xmm2, %xmm1");
5327         asm volatile("vrsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5328         asm volatile("vscalefph %zmm3, %zmm2, %zmm1");
5329         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5330         asm volatile("vscalefph %xmm3, %xmm2, %xmm1");
5331         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5332         asm volatile("vscalefph %ymm3, %ymm2, %ymm1");
5333         asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5334         asm volatile("vscalefsh %xmm3, %xmm2, %xmm1");
5335         asm volatile("vscalefsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5336         asm volatile("vsqrtph %zmm2, %zmm1");
5337         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
5338         asm volatile("vsqrtph %xmm2, %xmm1");
5339         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
5340         asm volatile("vsqrtph %ymm2, %ymm1");
5341         asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
5342         asm volatile("vsqrtsh %xmm3, %xmm2, %xmm1");
5343         asm volatile("vsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5344         asm volatile("vsubph %zmm3, %zmm2, %zmm1");
5345         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
5346         asm volatile("vsubph %xmm3, %xmm2, %xmm1");
5347         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5348         asm volatile("vsubph %ymm3, %ymm2, %ymm1");
5349         asm volatile("vsubph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
5350         asm volatile("vsubsh %xmm3, %xmm2, %xmm1");
5351         asm volatile("vsubsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
5352         asm volatile("vucomish %xmm2, %xmm1");
5353         asm volatile("vucomish 0x12345678(%eax,%ecx,8), %xmm1");
5354
5355 #endif /* #ifndef __x86_64__ */
5356
5357         /* Key Locker */
5358
5359         asm volatile("  loadiwkey %xmm1, %xmm2");
5360         asm volatile("  encodekey128 %eax, %edx");
5361         asm volatile("  encodekey256 %eax, %edx");
5362         asm volatile("  aesenc128kl 0x77(%edx), %xmm3");
5363         asm volatile("  aesenc256kl 0x77(%edx), %xmm3");
5364         asm volatile("  aesdec128kl 0x77(%edx), %xmm3");
5365         asm volatile("  aesdec256kl 0x77(%edx), %xmm3");
5366         asm volatile("  aesencwide128kl 0x77(%edx)");
5367         asm volatile("  aesencwide256kl 0x77(%edx)");
5368         asm volatile("  aesdecwide128kl 0x77(%edx)");
5369         asm volatile("  aesdecwide256kl 0x77(%edx)");
5370
5371         /* Remote Atomic Operations */
5372
5373         asm volatile("aadd %ecx,(%eax)");
5374         asm volatile("aadd %edx,(0x12345678)");
5375         asm volatile("aadd %edx,0x12345678(%eax,%ecx,8)");
5376
5377         asm volatile("aand %ecx,(%eax)");
5378         asm volatile("aand %edx,(0x12345678)");
5379         asm volatile("aand %edx,0x12345678(%eax,%ecx,8)");
5380
5381         asm volatile("aor %ecx,(%eax)");
5382         asm volatile("aor %edx,(0x12345678)");
5383         asm volatile("aor %edx,0x12345678(%eax,%ecx,8)");
5384
5385         asm volatile("axor %ecx,(%eax)");
5386         asm volatile("axor %edx,(0x12345678)");
5387         asm volatile("axor %edx,0x12345678(%eax,%ecx,8)");
5388
5389         /* AVX NE Convert */
5390
5391         asm volatile("vbcstnebf162ps (%ecx),%xmm6");
5392         asm volatile("vbcstnesh2ps (%ecx),%xmm6");
5393         asm volatile("vcvtneebf162ps (%ecx),%xmm6");
5394         asm volatile("vcvtneeph2ps (%ecx),%xmm6");
5395         asm volatile("vcvtneobf162ps (%ecx),%xmm6");
5396         asm volatile("vcvtneoph2ps (%ecx),%xmm6");
5397         asm volatile("vcvtneps2bf16 %xmm1,%xmm6");
5398
5399         /* AVX VNNI INT16 */
5400
5401         asm volatile("vpdpbssd %xmm1,%xmm2,%xmm3");
5402         asm volatile("vpdpbssds %xmm1,%xmm2,%xmm3");
5403         asm volatile("vpdpbsud %xmm1,%xmm2,%xmm3");
5404         asm volatile("vpdpbsuds %xmm1,%xmm2,%xmm3");
5405         asm volatile("vpdpbuud %xmm1,%xmm2,%xmm3");
5406         asm volatile("vpdpbuuds %xmm1,%xmm2,%xmm3");
5407         asm volatile("vpdpwsud %xmm1,%xmm2,%xmm3");
5408         asm volatile("vpdpwsuds %xmm1,%xmm2,%xmm3");
5409         asm volatile("vpdpwusd %xmm1,%xmm2,%xmm3");
5410         asm volatile("vpdpwusds %xmm1,%xmm2,%xmm3");
5411         asm volatile("vpdpwuud %xmm1,%xmm2,%xmm3");
5412         asm volatile("vpdpwuuds %xmm1,%xmm2,%xmm3");
5413
5414         /* AVX IFMA */
5415
5416         asm volatile("vpmadd52huq %xmm1,%xmm2,%xmm3");
5417         asm volatile("vpmadd52luq %xmm1,%xmm2,%xmm3");
5418
5419         /* AVX SHA512 */
5420
5421         asm volatile("vsha512msg1 %xmm1,%ymm2");
5422         asm volatile("vsha512msg2 %ymm1,%ymm2");
5423         asm volatile("vsha512rnds2 %xmm1,%ymm2,%ymm3");
5424
5425         /* AVX SM3 */
5426
5427         asm volatile("vsm3msg1 %xmm1,%xmm2,%xmm3");
5428         asm volatile("vsm3msg2 %xmm1,%xmm2,%xmm3");
5429         asm volatile("vsm3rnds2 $0xa1,%xmm1,%xmm2,%xmm3");
5430
5431         /* AVX SM4 */
5432
5433         asm volatile("vsm4key4 %xmm1,%xmm2,%xmm3");
5434         asm volatile("vsm4rnds4 %xmm1,%xmm2,%xmm3");
5435
5436         /* Pre-fetch */
5437
5438         asm volatile("prefetch (%eax)");
5439         asm volatile("prefetcht0 (%eax)");
5440         asm volatile("prefetcht1 (%eax)");
5441         asm volatile("prefetcht2 (%eax)");
5442         asm volatile("prefetchnta (%eax)");
5443
5444         /* Non-serializing write MSR */
5445
5446         asm volatile("wrmsrns");
5447
5448         /* Prediction history reset */
5449
5450         asm volatile("hreset $0");
5451
5452         /* Serialize instruction execution */
5453
5454         asm volatile("serialize");
5455
5456         /* TSX suspend load address tracking */
5457
5458         asm volatile("xresldtrk");
5459         asm volatile("xsusldtrk");
5460
5461         /* SGX */
5462
5463         asm volatile("encls");
5464         asm volatile("enclu");
5465         asm volatile("enclv");
5466
5467         /* pconfig */
5468
5469         asm volatile("pconfig");
5470
5471         /* wbnoinvd */
5472
5473         asm volatile("wbnoinvd");
5474
5475         /* Following line is a marker for the awk script - do not change */
5476         asm volatile("rdtsc"); /* Stop here */
5477
5478         return 0;
5479 }