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