3 { "vmovss", { XMScalar
, VexScalarR
, EXxmm_md
}, 0 },
8 { "vmovsd", { XMScalar
, VexScalarR
, EXxmm_mq
}, 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
, EXxmm_mq
}, 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 { "vcvtsi2sd{%LQ|}", { XMScalar
, VexScalar
, Ed
}, 0 },
43 { "vcvtsi2sd{%LQ|}", { XMScalar
, VexScalar
, EXxEVexR64
, Edq
}, 0 },
47 { "vsqrtss", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexR
}, 0 },
52 { "vsqrtsd", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexR
}, 0 },
56 { "vaddss", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexR
}, 0 },
61 { "vaddsd", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexR
}, 0 },
65 { "vmulss", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexR
}, 0 },
70 { "vmulsd", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexR
}, 0 },
74 { "vcvtps2pd", { XM
, EXEvexHalfBcstXmmq
, EXxEVexS
}, 0 },
78 { "vcvtss2sd", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexS
}, 0 },
83 { "vcvtpd2ps%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
88 { "vcvtsd2ss", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexR
}, 0 },
92 { "vcvtdq2ps", { XM
, EXx
, EXxEVexR
}, 0 },
93 { "vcvtqq2ps%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
97 { "vcvttps2dq", { XM
, EXx
, EXxEVexS
}, 0 },
101 { "vcvtps2dq", { XM
, EXx
, EXxEVexR
}, 0 },
103 /* EVEX_W_0F5C_P_1 */
105 { "vsubss", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexR
}, 0 },
107 /* EVEX_W_0F5C_P_3 */
110 { "vsubsd", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexR
}, 0 },
112 /* EVEX_W_0F5D_P_1 */
114 { "vminss", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexS
}, 0 },
116 /* EVEX_W_0F5D_P_3 */
119 { "vminsd", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexS
}, 0 },
121 /* EVEX_W_0F5E_P_1 */
123 { "vdivss", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexR
}, 0 },
125 /* EVEX_W_0F5E_P_3 */
128 { "vdivsd", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexR
}, 0 },
130 /* EVEX_W_0F5F_P_1 */
132 { "vmaxss", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexS
}, 0 },
134 /* EVEX_W_0F5F_P_3 */
137 { "vmaxsd", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexS
}, 0 },
141 { "vpunpckldq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
145 { "vpcmpgtd", { XMask
, Vex
, EXx
}, PREFIX_DATA
},
149 { "vpunpckhdq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
153 { "vpackssdw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
158 { "vpunpcklqdq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
163 { "vpunpckhqdq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
165 /* EVEX_W_0F6F_P_1 */
167 { "vmovdqu32", { XM
, EXEvexXNoBcst
}, 0 },
168 { "vmovdqu64", { XM
, EXEvexXNoBcst
}, 0 },
170 /* EVEX_W_0F6F_P_2 */
172 { "vmovdqa32", { XM
, EXEvexXNoBcst
}, 0 },
173 { "vmovdqa64", { XM
, EXEvexXNoBcst
}, 0 },
175 /* EVEX_W_0F6F_P_3 */
177 { "vmovdqu8", { XM
, EXx
}, 0 },
178 { "vmovdqu16", { XM
, EXx
}, 0 },
180 /* EVEX_W_0F70_P_2 */
182 { "vpshufd", { XM
, EXx
, Ib
}, 0 },
184 /* EVEX_W_0F72_R_2 */
186 { "vpsrld", { Vex
, EXx
, Ib
}, PREFIX_DATA
},
188 /* EVEX_W_0F72_R_6 */
190 { "vpslld", { Vex
, EXx
, Ib
}, PREFIX_DATA
},
192 /* EVEX_W_0F73_R_2 */
195 { "vpsrlq", { Vex
, EXx
, Ib
}, PREFIX_DATA
},
197 /* EVEX_W_0F73_R_6 */
200 { "vpsllq", { Vex
, EXx
, Ib
}, PREFIX_DATA
},
204 { "vpcmpeqd", { XMask
, Vex
, EXx
}, PREFIX_DATA
},
206 /* EVEX_W_0F78_P_0 */
208 { "vcvttps2udq", { XM
, EXx
, EXxEVexS
}, 0 },
209 { "vcvttpd2udq%XY", { XMxmmq
, EXx
, EXxEVexS
}, 0 },
211 /* EVEX_W_0F78_P_2 */
213 { "vcvttps2uqq", { XM
, EXEvexHalfBcstXmmq
, EXxEVexS
}, 0 },
214 { "vcvttpd2uqq", { XM
, EXx
, EXxEVexS
}, 0 },
216 /* EVEX_W_0F79_P_0 */
218 { "vcvtps2udq", { XM
, EXx
, EXxEVexR
}, 0 },
219 { "vcvtpd2udq%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
221 /* EVEX_W_0F79_P_2 */
223 { "vcvtps2uqq", { XM
, EXEvexHalfBcstXmmq
, EXxEVexR
}, 0 },
224 { "vcvtpd2uqq", { XM
, EXx
, EXxEVexR
}, 0 },
226 /* EVEX_W_0F7A_P_1 */
228 { "vcvtudq2pd", { XM
, EXEvexHalfBcstXmmq
}, 0 },
229 { "vcvtuqq2pd", { XM
, EXx
, EXxEVexR
}, 0 },
231 /* EVEX_W_0F7A_P_2 */
233 { "vcvttps2qq", { XM
, EXEvexHalfBcstXmmq
, EXxEVexS
}, 0 },
234 { "vcvttpd2qq", { XM
, EXx
, EXxEVexS
}, 0 },
236 /* EVEX_W_0F7A_P_3 */
238 { "vcvtudq2ps", { XM
, EXx
, EXxEVexR
}, 0 },
239 { "vcvtuqq2ps%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
241 /* EVEX_W_0F7B_P_2 */
243 { "vcvtps2qq", { XM
, EXEvexHalfBcstXmmq
, EXxEVexR
}, 0 },
244 { "vcvtpd2qq", { XM
, EXx
, EXxEVexR
}, 0 },
246 /* EVEX_W_0F7B_P_3 */
248 { "vcvtusi2sd{%LQ|}", { XMScalar
, VexScalar
, Ed
}, 0 },
249 { "vcvtusi2sd{%LQ|}", { XMScalar
, VexScalar
, EXxEVexR64
, Edq
}, 0 },
251 /* EVEX_W_0F7E_P_1 */
254 { "vmovq", { XMScalar
, EXxmm_mq
}, 0 },
256 /* EVEX_W_0F7F_P_1 */
258 { "vmovdqu32", { EXxS
, XM
}, 0 },
259 { "vmovdqu64", { EXxS
, XM
}, 0 },
261 /* EVEX_W_0F7F_P_2 */
263 { "vmovdqa32", { EXxS
, XM
}, 0 },
264 { "vmovdqa64", { EXxS
, XM
}, 0 },
266 /* EVEX_W_0F7F_P_3 */
268 { "vmovdqu8", { EXxS
, XM
}, 0 },
269 { "vmovdqu16", { EXxS
, XM
}, 0 },
271 /* EVEX_W_0FC2_P_1 */
273 { "vcmpss", { XMask
, VexScalar
, EXxmm_md
, EXxEVexS
, CMP
}, 0 },
275 /* EVEX_W_0FC2_P_3 */
278 { "vcmpsd", { XMask
, VexScalar
, EXxmm_mq
, EXxEVexS
, CMP
}, 0 },
282 { "vpsrld", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
287 { "vpsrlq", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
292 { "vpaddq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
294 /* EVEX_W_0FD6_L_0 */
297 { "vmovq", { EXqS
, XMScalar
}, PREFIX_DATA
},
299 /* EVEX_W_0FE6_P_1 */
301 { "vcvtdq2pd", { XM
, EXEvexHalfBcstXmmq
}, 0 },
302 { "vcvtqq2pd", { XM
, EXx
, EXxEVexR
}, 0 },
304 /* EVEX_W_0FE6_P_2 */
307 { "vcvttpd2dq%XY", { XMxmmq
, EXx
, EXxEVexS
}, 0 },
309 /* EVEX_W_0FE6_P_3 */
312 { "vcvtpd2dq%XY", { XMxmmq
, EXx
, EXxEVexR
}, 0 },
316 { "vmovntdq", { EXEvexXNoBcst
, XM
}, PREFIX_DATA
},
320 { "vpslld", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
325 { "vpsllq", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
330 { "vpmuludq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
334 { "vpsubd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
339 { "vpsubq", { XM
, Vex
, EXx
}, PREFIX_DATA
},
343 { "vpaddd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
348 { "vpermilpd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
350 /* EVEX_W_0F3810_P_1 */
352 { "vpmovuswb", { EXxmmq
, XM
}, 0 },
354 /* EVEX_W_0F3810_P_2 */
357 { "vpsrlvw", { XM
, Vex
, EXx
}, 0 },
359 /* EVEX_W_0F3811_P_1 */
361 { "vpmovusdb", { EXxmmqd
, XM
}, 0 },
363 /* EVEX_W_0F3811_P_2 */
366 { "vpsravw", { XM
, Vex
, EXx
}, 0 },
368 /* EVEX_W_0F3812_P_1 */
370 { "vpmovusqb", { EXxmmdw
, XM
}, 0 },
372 /* EVEX_W_0F3812_P_2 */
375 { "vpsllvw", { XM
, Vex
, EXx
}, 0 },
377 /* EVEX_W_0F3813_P_1 */
379 { "vpmovusdw", { EXxmmq
, XM
}, 0 },
381 /* EVEX_W_0F3813_P_2 */
383 { "vcvtph2ps", { XM
, EXxmmq
, EXxEVexS
}, 0 },
385 /* EVEX_W_0F3814_P_1 */
387 { "vpmovusqw", { EXxmmqd
, XM
}, 0 },
389 /* EVEX_W_0F3815_P_1 */
391 { "vpmovusqd", { EXxmmq
, XM
}, 0 },
395 { EVEX_LEN_TABLE (EVEX_LEN_0F3819_W_0
) },
396 { EVEX_LEN_TABLE (EVEX_LEN_0F3819_W_1
) },
400 { MOD_TABLE (MOD_EVEX_0F381A_W_0
) },
401 { MOD_TABLE (MOD_EVEX_0F381A_W_1
) },
405 { MOD_TABLE (MOD_EVEX_0F381B_W_0
) },
406 { MOD_TABLE (MOD_EVEX_0F381B_W_1
) },
410 { "vpabsd", { XM
, EXx
}, PREFIX_DATA
},
415 { "vpabsq", { XM
, EXx
}, PREFIX_DATA
},
417 /* EVEX_W_0F3820_P_1 */
419 { "vpmovswb", { EXxmmq
, XM
}, 0 },
421 /* EVEX_W_0F3821_P_1 */
423 { "vpmovsdb", { EXxmmqd
, XM
}, 0 },
425 /* EVEX_W_0F3822_P_1 */
427 { "vpmovsqb", { EXxmmdw
, XM
}, 0 },
429 /* EVEX_W_0F3823_P_1 */
431 { "vpmovsdw", { EXxmmq
, XM
}, 0 },
433 /* EVEX_W_0F3824_P_1 */
435 { "vpmovsqw", { EXxmmqd
, XM
}, 0 },
437 /* EVEX_W_0F3825_P_1 */
439 { "vpmovsqd", { EXxmmq
, XM
}, 0 },
441 /* EVEX_W_0F3825_P_2 */
443 { "vpmovsxdq", { XM
, EXxmmq
}, 0 },
445 /* EVEX_W_0F3828_P_2 */
448 { "vpmuldq", { XM
, Vex
, EXx
}, 0 },
450 /* EVEX_W_0F3829_P_2 */
453 { "vpcmpeqq", { XMask
, Vex
, EXx
}, 0 },
455 /* EVEX_W_0F382A_P_1 */
458 { MOD_TABLE (MOD_EVEX_0F382A_P_1_W_1
) },
460 /* EVEX_W_0F382A_P_2 */
462 { "vmovntdqa", { XM
, EXEvexXNoBcst
}, 0 },
466 { "vpackusdw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
468 /* EVEX_W_0F3830_P_1 */
470 { "vpmovwb", { EXxmmq
, XM
}, 0 },
472 /* EVEX_W_0F3831_P_1 */
474 { "vpmovdb", { EXxmmqd
, XM
}, 0 },
476 /* EVEX_W_0F3832_P_1 */
478 { "vpmovqb", { EXxmmdw
, XM
}, 0 },
480 /* EVEX_W_0F3833_P_1 */
482 { "vpmovdw", { EXxmmq
, XM
}, 0 },
484 /* EVEX_W_0F3834_P_1 */
486 { "vpmovqw", { EXxmmqd
, XM
}, 0 },
488 /* EVEX_W_0F3835_P_1 */
490 { "vpmovqd", { EXxmmq
, XM
}, 0 },
492 /* EVEX_W_0F3835_P_2 */
494 { "vpmovzxdq", { XM
, EXxmmq
}, 0 },
499 { "vpcmpgtq", { XMask
, Vex
, EXx
}, PREFIX_DATA
},
501 /* EVEX_W_0F383A_P_1 */
503 { MOD_TABLE (MOD_EVEX_0F383A_P_1_W_0
) },
505 /* EVEX_W_0F3852_P_1 */
507 { "vdpbf16ps", { XM
, Vex
, EXx
}, 0 },
512 { "vbroadcasti32x2", { XM
, EXxmm_mq
}, PREFIX_DATA
},
513 { "vpbroadcastq", { XM
, EXxmm_mq
}, PREFIX_DATA
},
517 { MOD_TABLE (MOD_EVEX_0F385A_W_0
) },
518 { MOD_TABLE (MOD_EVEX_0F385A_W_1
) },
522 { MOD_TABLE (MOD_EVEX_0F385B_W_0
) },
523 { MOD_TABLE (MOD_EVEX_0F385B_W_1
) },
528 { "vpshldvw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
530 /* EVEX_W_0F3872_P_1 */
532 { "vcvtneps2bf16%XY", { XMxmmq
, EXx
}, 0 },
535 /* EVEX_W_0F3872_P_2 */
538 { "vpshrdvw", { XM
, Vex
, EXx
}, 0 },
540 /* EVEX_W_0F3872_P_3 */
542 { "vcvtne2ps2bf16", { XM
, Vex
, EXx
}, 0 },
547 { MOD_TABLE (MOD_EVEX_0F387A_W_0
) },
551 { MOD_TABLE (MOD_EVEX_0F387B_W_0
) },
556 { "vpmultishiftqb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
560 { "vpgatherqd", { XMxmmq
, MVexVSIBQDWpX
}, PREFIX_DATA
},
561 { "vpgatherqq", { XM
, MVexVSIBQWpX
}, 0 },
565 { "vgatherqps", { XMxmmq
, MVexVSIBQDWpX
}, PREFIX_DATA
},
566 { "vgatherqpd", { XM
, MVexVSIBQWpX
}, 0 },
570 { "vpscatterqd", { MVexVSIBQDWpX
, XMxmmq
}, PREFIX_DATA
},
571 { "vpscatterqq", { MVexVSIBQWpX
, XM
}, 0 },
575 { "vscatterqps", { MVexVSIBQDWpX
, XMxmmq
}, PREFIX_DATA
},
576 { "vscatterqpd", { MVexVSIBQWpX
, XM
}, 0 },
578 /* EVEX_W_0F38C7_R_1_M_0 */
580 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_1_M_0_W_0
) },
581 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_1_M_0_W_1
) },
583 /* EVEX_W_0F38C7_R_2_M_0 */
585 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_2_M_0_W_0
) },
586 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_2_M_0_W_1
) },
588 /* EVEX_W_0F38C7_R_5_M_0 */
590 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_5_M_0_W_0
) },
591 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_5_M_0_W_1
) },
593 /* EVEX_W_0F38C7_R_6_M_0 */
595 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_6_M_0_W_0
) },
596 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_6_M_0_W_1
) },
601 { EVEX_LEN_TABLE (EVEX_LEN_0F3A00_W_1
) },
606 { EVEX_LEN_TABLE (EVEX_LEN_0F3A01_W_1
) },
611 { "vpermilpd", { XM
, EXx
, Ib
}, PREFIX_DATA
},
615 { "vrndscaleps", { XM
, EXx
, EXxEVexS
, Ib
}, PREFIX_DATA
},
620 { "vrndscalepd", { XM
, EXx
, EXxEVexS
, Ib
}, PREFIX_DATA
},
624 { "vrndscaless", { XMScalar
, VexScalar
, EXxmm_md
, EXxEVexS
, Ib
}, PREFIX_DATA
},
629 { "vrndscalesd", { XMScalar
, VexScalar
, EXxmm_mq
, EXxEVexS
, Ib
}, PREFIX_DATA
},
633 { EVEX_LEN_TABLE (EVEX_LEN_0F3A18_W_0
) },
634 { EVEX_LEN_TABLE (EVEX_LEN_0F3A18_W_1
) },
638 { EVEX_LEN_TABLE (EVEX_LEN_0F3A19_W_0
) },
639 { EVEX_LEN_TABLE (EVEX_LEN_0F3A19_W_1
) },
643 { EVEX_LEN_TABLE (EVEX_LEN_0F3A1A_W_0
) },
644 { EVEX_LEN_TABLE (EVEX_LEN_0F3A1A_W_1
) },
648 { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B_W_0
) },
649 { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B_W_1
) },
653 { EVEX_LEN_TABLE (EVEX_LEN_0F3A21_W_0
) },
657 { EVEX_LEN_TABLE (EVEX_LEN_0F3A23_W_0
) },
658 { EVEX_LEN_TABLE (EVEX_LEN_0F3A23_W_1
) },
662 { EVEX_LEN_TABLE (EVEX_LEN_0F3A38_W_0
) },
663 { EVEX_LEN_TABLE (EVEX_LEN_0F3A38_W_1
) },
667 { EVEX_LEN_TABLE (EVEX_LEN_0F3A39_W_0
) },
668 { EVEX_LEN_TABLE (EVEX_LEN_0F3A39_W_1
) },
672 { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A_W_0
) },
673 { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A_W_1
) },
677 { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B_W_0
) },
678 { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B_W_1
) },
682 { "vdbpsadbw", { XM
, Vex
, EXx
, Ib
}, 0 },
686 { EVEX_LEN_TABLE (EVEX_LEN_0F3A43_W_0
) },
687 { EVEX_LEN_TABLE (EVEX_LEN_0F3A43_W_1
) },
692 { "vpshldw", { XM
, Vex
, EXx
, Ib
}, 0 },
697 { "vpshrdw", { XM
, Vex
, EXx
, Ib
}, 0 },