3 { "vmovss", { XMScalar
, VexScalarR
, EXd
}, 0 },
8 { "vmovsd", { XMScalar
, VexScalarR
, EXq
}, 0 },
12 { "vmovss", { EXdS
, VexScalarR
, XMScalar
}, 0 },
17 { "vmovsd", { EXqS
, VexScalarR
, XMScalar
}, 0 },
19 /* EVEX_W_0F12_P_0_M_1 */
21 { "vmovhlps", { XMM
, Vex
, EXq
}, 0 },
25 { "vmovsldup", { XM
, EXEvexXNoBcst
}, 0 },
30 { "vmovddup", { XM
, EXymmq
}, 0 },
32 /* EVEX_W_0F16_P_0_M_1 */
34 { "vmovlhps", { XMM
, Vex
, EXx
}, 0 },
38 { "vmovshdup", { XM
, EXx
}, 0 },
42 { "vsqrtss", { XMScalar
, VexScalar
, EXd
, EXxEVexR
}, 0 },
47 { "vsqrtsd", { XMScalar
, VexScalar
, EXq
, EXxEVexR
}, 0 },
51 { "vaddss", { XMScalar
, VexScalar
, EXd
, EXxEVexR
}, 0 },
56 { "vaddsd", { XMScalar
, VexScalar
, EXq
, EXxEVexR
}, 0 },
60 { "vmulss", { XMScalar
, VexScalar
, EXd
, EXxEVexR
}, 0 },
65 { "vmulsd", { XMScalar
, VexScalar
, EXq
, EXxEVexR
}, 0 },
69 { "vcvtps2pd", { XM
, EXEvexHalfBcstXmmq
, EXxEVexS
}, 0 },
73 { "vcvtss2sd", { XMScalar
, VexScalar
, EXd
, EXxEVexS
}, 0 },
78 { "vcvtpd2ps%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
83 { "vcvtsd2ss", { XMScalar
, VexScalar
, EXq
, EXxEVexR
}, 0 },
87 { "vcvtdq2ps", { XM
, EXx
, EXxEVexR
}, 0 },
88 { "vcvtqq2ps%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
92 { "vcvttps2dq", { XM
, EXx
, EXxEVexS
}, 0 },
96 { "vcvtps2dq", { XM
, EXx
, EXxEVexR
}, 0 },
100 { "vsubss", { XMScalar
, VexScalar
, EXd
, EXxEVexR
}, 0 },
102 /* EVEX_W_0F5C_P_3 */
105 { "vsubsd", { XMScalar
, VexScalar
, EXq
, EXxEVexR
}, 0 },
107 /* EVEX_W_0F5D_P_1 */
109 { "vminss", { XMScalar
, VexScalar
, EXd
, EXxEVexS
}, 0 },
111 /* EVEX_W_0F5D_P_3 */
114 { "vminsd", { XMScalar
, VexScalar
, EXq
, EXxEVexS
}, 0 },
116 /* EVEX_W_0F5E_P_1 */
118 { "vdivss", { XMScalar
, VexScalar
, EXd
, EXxEVexR
}, 0 },
120 /* EVEX_W_0F5E_P_3 */
123 { "vdivsd", { XMScalar
, VexScalar
, EXq
, EXxEVexR
}, 0 },
125 /* EVEX_W_0F5F_P_1 */
127 { "vmaxss", { XMScalar
, VexScalar
, EXd
, EXxEVexS
}, 0 },
129 /* EVEX_W_0F5F_P_3 */
132 { "vmaxsd", { XMScalar
, VexScalar
, EXq
, EXxEVexS
}, 0 },
136 { "vpunpckldq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
140 { "vpcmpgtd", { MaskG
, Vex
, EXx
}, PREFIX_DATA
},
144 { "vpunpckhdq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
148 { "vpackssdw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
153 { "vpunpcklqdq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
158 { "vpunpckhqdq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
160 /* EVEX_W_0F6F_P_1 */
162 { "vmovdqu32", { XM
, EXEvexXNoBcst
}, 0 },
163 { "vmovdqu64", { XM
, EXEvexXNoBcst
}, 0 },
165 /* EVEX_W_0F6F_P_2 */
167 { "vmovdqa32", { XM
, EXEvexXNoBcst
}, 0 },
168 { "vmovdqa64", { XM
, EXEvexXNoBcst
}, 0 },
170 /* EVEX_W_0F6F_P_3 */
172 { "vmovdqu8", { XM
, EXx
}, 0 },
173 { "vmovdqu16", { XM
, EXx
}, 0 },
175 /* EVEX_W_0F70_P_2 */
177 { "vpshufd", { XM
, EXx
, Ib
}, 0 },
179 /* EVEX_W_0F72_R_2 */
181 { "vpsrld", { Vex
, EXx
, Ib
}, PREFIX_DATA
},
183 /* EVEX_W_0F72_R_6 */
185 { "vpslld", { Vex
, EXx
, Ib
}, PREFIX_DATA
},
187 /* EVEX_W_0F73_R_2 */
190 { "vpsrlq", { Vex
, EXx
, Ib
}, PREFIX_DATA
},
192 /* EVEX_W_0F73_R_6 */
195 { "vpsllq", { Vex
, EXx
, Ib
}, PREFIX_DATA
},
199 { "vpcmpeqd", { MaskG
, Vex
, EXx
}, PREFIX_DATA
},
201 /* EVEX_W_0F78_P_0 */
203 { "vcvttps2udq", { XM
, EXx
, EXxEVexS
}, 0 },
204 { "vcvttpd2udq%XY", { XMxmmq
, EXx
, EXxEVexS
}, 0 },
206 /* EVEX_W_0F78_P_2 */
208 { "vcvttps2uqq", { XM
, EXEvexHalfBcstXmmq
, EXxEVexS
}, 0 },
209 { "vcvttpd2uqq", { XM
, EXx
, EXxEVexS
}, 0 },
211 /* EVEX_W_0F79_P_0 */
213 { "vcvtps2udq", { XM
, EXx
, EXxEVexR
}, 0 },
214 { "vcvtpd2udq%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
216 /* EVEX_W_0F79_P_2 */
218 { "vcvtps2uqq", { XM
, EXEvexHalfBcstXmmq
, EXxEVexR
}, 0 },
219 { "vcvtpd2uqq", { XM
, EXx
, EXxEVexR
}, 0 },
221 /* EVEX_W_0F7A_P_1 */
223 { "vcvtudq2pd", { XM
, EXEvexHalfBcstXmmq
}, 0 },
224 { "vcvtuqq2pd", { XM
, EXx
, EXxEVexR
}, 0 },
226 /* EVEX_W_0F7A_P_2 */
228 { "vcvttps2qq", { XM
, EXEvexHalfBcstXmmq
, EXxEVexS
}, 0 },
229 { "vcvttpd2qq", { XM
, EXx
, EXxEVexS
}, 0 },
231 /* EVEX_W_0F7A_P_3 */
233 { "vcvtudq2ps", { XM
, EXx
, EXxEVexR
}, 0 },
234 { "vcvtuqq2ps%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
236 /* EVEX_W_0F7B_P_2 */
238 { "vcvtps2qq", { XM
, EXEvexHalfBcstXmmq
, EXxEVexR
}, 0 },
239 { "vcvtpd2qq", { XM
, EXx
, EXxEVexR
}, 0 },
241 /* EVEX_W_0F7E_P_1 */
244 { VEX_LEN_TABLE (VEX_LEN_0F7E_P_1
) },
246 /* EVEX_W_0F7F_P_1 */
248 { "vmovdqu32", { EXxS
, XM
}, 0 },
249 { "vmovdqu64", { EXxS
, XM
}, 0 },
251 /* EVEX_W_0F7F_P_2 */
253 { "vmovdqa32", { EXxS
, XM
}, 0 },
254 { "vmovdqa64", { EXxS
, XM
}, 0 },
256 /* EVEX_W_0F7F_P_3 */
258 { "vmovdqu8", { EXxS
, XM
}, 0 },
259 { "vmovdqu16", { EXxS
, XM
}, 0 },
261 /* EVEX_W_0FC2_P_1 */
263 { "vcmpss", { MaskG
, VexScalar
, EXd
, EXxEVexS
, CMP
}, 0 },
265 /* EVEX_W_0FC2_P_3 */
268 { "vcmpsd", { MaskG
, VexScalar
, EXq
, EXxEVexS
, CMP
}, 0 },
272 { "vpsrld", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
277 { "vpsrlq", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
282 { "vpaddq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
287 { VEX_LEN_TABLE (VEX_LEN_0FD6
) },
289 /* EVEX_W_0FE6_P_1 */
291 { "vcvtdq2pd", { XM
, EXEvexHalfBcstXmmq
}, 0 },
292 { "vcvtqq2pd", { XM
, EXx
, EXxEVexR
}, 0 },
294 /* EVEX_W_0FE6_P_2 */
297 { "vcvttpd2dq%XY", { XMxmmq
, EXx
, EXxEVexS
}, 0 },
299 /* EVEX_W_0FE6_P_3 */
302 { "vcvtpd2dq%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
306 { "vmovntdq", { EXEvexXNoBcst
, XM
}, PREFIX_DATA
},
310 { "vpslld", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
315 { "vpsllq", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
320 { "vpmuludq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
324 { "vpsubd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
329 { "vpsubq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
333 { "vpaddd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
338 { "vpermilpd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
340 /* EVEX_W_0F3810_P_1 */
342 { "vpmovuswb", { EXxmmq
, XM
}, 0 },
344 /* EVEX_W_0F3810_P_2 */
347 { "vpsrlvw", { XM
, Vex
, EXx
}, 0 },
349 /* EVEX_W_0F3811_P_1 */
351 { "vpmovusdb", { EXxmmqd
, XM
}, 0 },
353 /* EVEX_W_0F3811_P_2 */
356 { "vpsravw", { XM
, Vex
, EXx
}, 0 },
358 /* EVEX_W_0F3812_P_1 */
360 { "vpmovusqb", { EXxmmdw
, XM
}, 0 },
362 /* EVEX_W_0F3812_P_2 */
365 { "vpsllvw", { XM
, Vex
, EXx
}, 0 },
367 /* EVEX_W_0F3813_P_1 */
369 { "vpmovusdw", { EXxmmq
, XM
}, 0 },
371 /* EVEX_W_0F3813_P_2 */
373 { "vcvtph2ps", { XM
, EXxmmq
, EXxEVexS
}, 0 },
375 /* EVEX_W_0F3814_P_1 */
377 { "vpmovusqw", { EXxmmqd
, XM
}, 0 },
379 /* EVEX_W_0F3815_P_1 */
381 { "vpmovusqd", { EXxmmq
, XM
}, 0 },
383 /* EVEX_W_0F3819_L_n */
385 { "vbroadcastf32x2", { XM
, EXq
}, PREFIX_DATA
},
386 { "vbroadcastsd", { XM
, EXq
}, PREFIX_DATA
},
388 /* EVEX_W_0F381A_M_0_L_n */
390 { "vbroadcastf32x4", { XM
, EXxmm
}, PREFIX_DATA
},
391 { "vbroadcastf64x2", { XM
, EXxmm
}, PREFIX_DATA
},
393 /* EVEX_W_0F381B_M_0_L_2 */
395 { "vbroadcastf32x8", { XM
, EXymm
}, PREFIX_DATA
},
396 { "vbroadcastf64x4", { XM
, EXymm
}, PREFIX_DATA
},
400 { "vpabsd", { XM
, EXx
}, PREFIX_DATA
},
405 { "vpabsq", { XM
, EXx
}, PREFIX_DATA
},
407 /* EVEX_W_0F3820_P_1 */
409 { "vpmovswb", { EXxmmq
, XM
}, 0 },
411 /* EVEX_W_0F3821_P_1 */
413 { "vpmovsdb", { EXxmmqd
, XM
}, 0 },
415 /* EVEX_W_0F3822_P_1 */
417 { "vpmovsqb", { EXxmmdw
, XM
}, 0 },
419 /* EVEX_W_0F3823_P_1 */
421 { "vpmovsdw", { EXxmmq
, XM
}, 0 },
423 /* EVEX_W_0F3824_P_1 */
425 { "vpmovsqw", { EXxmmqd
, XM
}, 0 },
427 /* EVEX_W_0F3825_P_1 */
429 { "vpmovsqd", { EXxmmq
, XM
}, 0 },
431 /* EVEX_W_0F3825_P_2 */
433 { "vpmovsxdq", { XM
, EXxmmq
}, 0 },
435 /* EVEX_W_0F3828_P_2 */
438 { "vpmuldq", { XM
, Vex
, EXx
}, 0 },
440 /* EVEX_W_0F3829_P_2 */
443 { "vpcmpeqq", { MaskG
, Vex
, EXx
}, 0 },
445 /* EVEX_W_0F382A_P_1 */
448 { MOD_TABLE (MOD_EVEX_0F382A_P_1_W_1
) },
450 /* EVEX_W_0F382A_P_2 */
452 { "vmovntdqa", { XM
, EXEvexXNoBcst
}, 0 },
456 { "vpackusdw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
458 /* EVEX_W_0F3830_P_1 */
460 { "vpmovwb", { EXxmmq
, XM
}, 0 },
462 /* EVEX_W_0F3831_P_1 */
464 { "vpmovdb", { EXxmmqd
, XM
}, 0 },
466 /* EVEX_W_0F3832_P_1 */
468 { "vpmovqb", { EXxmmdw
, XM
}, 0 },
470 /* EVEX_W_0F3833_P_1 */
472 { "vpmovdw", { EXxmmq
, XM
}, 0 },
474 /* EVEX_W_0F3834_P_1 */
476 { "vpmovqw", { EXxmmqd
, XM
}, 0 },
478 /* EVEX_W_0F3835_P_1 */
480 { "vpmovqd", { EXxmmq
, XM
}, 0 },
482 /* EVEX_W_0F3835_P_2 */
484 { "vpmovzxdq", { XM
, EXxmmq
}, 0 },
489 { "vpcmpgtq", { MaskG
, Vex
, EXx
}, PREFIX_DATA
},
491 /* EVEX_W_0F383A_P_1 */
493 { MOD_TABLE (MOD_EVEX_0F383A_P_1_W_0
) },
495 /* EVEX_W_0F3852_P_1 */
497 { "vdpbf16ps", { XM
, Vex
, EXx
}, 0 },
502 { "vbroadcasti32x2", { XM
, EXq
}, PREFIX_DATA
},
503 { "vpbroadcastq", { XM
, EXq
}, PREFIX_DATA
},
505 /* EVEX_W_0F385A_M_0_L_n */
507 { "vbroadcasti32x4", { XM
, EXxmm
}, PREFIX_DATA
},
508 { "vbroadcasti64x2", { XM
, EXxmm
}, PREFIX_DATA
},
510 /* EVEX_W_0F385B_M_0_L_2 */
512 { "vbroadcasti32x8", { XM
, EXymm
}, PREFIX_DATA
},
513 { "vbroadcasti64x4", { XM
, EXymm
}, PREFIX_DATA
},
518 { "vpshldvw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
520 /* EVEX_W_0F3872_P_1 */
522 { "vcvtneps2bf16%XY", { XMxmmq
, EXx
}, 0 },
525 /* EVEX_W_0F3872_P_2 */
528 { "vpshrdvw", { XM
, Vex
, EXx
}, 0 },
530 /* EVEX_W_0F3872_P_3 */
532 { "vcvtne2ps2bf16", { XM
, Vex
, EXx
}, 0 },
537 { MOD_TABLE (MOD_EVEX_0F387A_W_0
) },
541 { MOD_TABLE (MOD_EVEX_0F387B_W_0
) },
546 { "vpmultishiftqb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
551 { "vpermilpd", { XM
, EXx
, Ib
}, PREFIX_DATA
},
556 { "vrndscalepd", { XM
, EXx
, EXxEVexS
, Ib
}, PREFIX_DATA
},
561 { "vrndscalesd", { XMScalar
, VexScalar
, EXq
, EXxEVexS
, Ib
}, PREFIX_DATA
},
563 /* EVEX_W_0F3A18_L_n */
565 { "vinsertf32x4", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
566 { "vinsertf64x2", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
568 /* EVEX_W_0F3A19_L_n */
570 { "vextractf32x4", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
571 { "vextractf64x2", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
573 /* EVEX_W_0F3A1A_L_2 */
575 { "vinsertf32x8", { XM
, Vex
, EXymm
, Ib
}, PREFIX_DATA
},
576 { "vinsertf64x4", { XM
, Vex
, EXymm
, Ib
}, PREFIX_DATA
},
578 /* EVEX_W_0F3A1B_L_2 */
580 { "vextractf32x8", { EXymm
, XM
, Ib
}, PREFIX_DATA
},
581 { "vextractf64x4", { EXymm
, XM
, Ib
}, PREFIX_DATA
},
585 { VEX_LEN_TABLE (VEX_LEN_0F3A21
) },
587 /* EVEX_W_0F3A23_L_n */
589 { "vshuff32x4", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
590 { "vshuff64x2", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
592 /* EVEX_W_0F3A38_L_n */
594 { "vinserti32x4", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
595 { "vinserti64x2", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
597 /* EVEX_W_0F3A39_L_n */
599 { "vextracti32x4", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
600 { "vextracti64x2", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
602 /* EVEX_W_0F3A3A_L_2 */
604 { "vinserti32x8", { XM
, Vex
, EXymm
, Ib
}, PREFIX_DATA
},
605 { "vinserti64x4", { XM
, Vex
, EXymm
, Ib
}, PREFIX_DATA
},
607 /* EVEX_W_0F3A3B_L_2 */
609 { "vextracti32x8", { EXymm
, XM
, Ib
}, PREFIX_DATA
},
610 { "vextracti64x4", { EXymm
, XM
, Ib
}, PREFIX_DATA
},
614 { "vdbpsadbw", { XM
, Vex
, EXx
, Ib
}, 0 },
616 /* EVEX_W_0F3A43_L_n */
618 { "vshufi32x4", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
619 { "vshufi64x2", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
624 { "vpshldw", { XM
, Vex
, EXx
, Ib
}, 0 },
629 { "vpshrdw", { XM
, Vex
, EXx
, Ib
}, 0 },
631 /* EVEX_W_MAP5_5B_P_0 */
633 { "vcvtdq2ph%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
634 { "vcvtqq2ph%XZ", { XMM
, EXx
, EXxEVexR
}, 0 },
636 /* EVEX_W_MAP5_7A_P_3 */
638 { "vcvtudq2ph%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
639 { "vcvtuqq2ph%XZ", { XMM
, EXx
, EXxEVexR
}, 0 },