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