1 static const struct dis386 evex_len_table
[][3] = {
2 /* EVEX_LEN_0F6E_P_2 */
4 { "vmovK", { XMScalar
, Edq
}, 0 },
7 /* EVEX_LEN_0F7E_P_1 */
9 { VEX_W_TABLE (EVEX_W_0F7E_P_1
) },
12 /* EVEX_LEN_0F7E_P_2 */
14 { "vmovK", { Edq
, XMScalar
}, 0 },
17 /* EVEX_LEN_0FC4_P_2 */
19 { "vpinsrw", { XM
, Vex128
, Edqw
, Ib
}, 0 },
22 /* EVEX_LEN_0FC5_P_2 */
24 { "vpextrw", { Gdq
, XS
, Ib
}, 0 },
27 /* EVEX_LEN_0FD6_P_2 */
29 { VEX_W_TABLE (EVEX_W_0FD6_P_2
) },
32 /* EVEX_LEN_0F3816_P_2 */
35 { "vpermp%XW", { XM
, Vex
, EXx
}, 0 },
36 { "vpermp%XW", { XM
, Vex
, EXx
}, 0 },
39 /* EVEX_LEN_0F3819_P_2_W_0 */
42 { "vbroadcastf32x2", { XM
, EXxmm_mq
}, 0 },
43 { "vbroadcastf32x2", { XM
, EXxmm_mq
}, 0 },
46 /* EVEX_LEN_0F3819_P_2_W_1 */
49 { "vbroadcastsd", { XM
, EXxmm_mq
}, 0 },
50 { "vbroadcastsd", { XM
, EXxmm_mq
}, 0 },
53 /* EVEX_LEN_0F381A_P_2_W_0 */
56 { "vbroadcastf32x4", { XM
, EXxmm
}, 0 },
57 { "vbroadcastf32x4", { XM
, EXxmm
}, 0 },
60 /* EVEX_LEN_0F381A_P_2_W_1 */
63 { "vbroadcastf64x2", { XM
, EXxmm
}, 0 },
64 { "vbroadcastf64x2", { XM
, EXxmm
}, 0 },
67 /* EVEX_LEN_0F381B_P_2_W_0 */
71 { "vbroadcastf32x8", { XM
, EXymm
}, 0 },
74 /* EVEX_LEN_0F381B_P_2_W_1 */
78 { "vbroadcastf64x4", { XM
, EXymm
}, 0 },
81 /* EVEX_LEN_0F3836_P_2 */
84 { "vperm%LW", { XM
, Vex
, EXx
}, 0 },
85 { "vperm%LW", { XM
, Vex
, EXx
}, 0 },
88 /* EVEX_LEN_0F385A_P_2_W_0 */
91 { "vbroadcasti32x4", { XM
, EXxmm
}, 0 },
92 { "vbroadcasti32x4", { XM
, EXxmm
}, 0 },
95 /* EVEX_LEN_0F385A_P_2_W_1 */
98 { "vbroadcasti64x2", { XM
, EXxmm
}, 0 },
99 { "vbroadcasti64x2", { XM
, EXxmm
}, 0 },
102 /* EVEX_LEN_0F385B_P_2_W_0 */
106 { "vbroadcasti32x8", { XM
, EXymm
}, 0 },
109 /* EVEX_LEN_0F385B_P_2_W_1 */
113 { "vbroadcasti64x4", { XM
, EXymm
}, 0 },
116 /* EVEX_LEN_0F38C6_REG_1_PREFIX_2 */
120 { "vgatherpf0dp%XW", { MVexVSIBDWpX
}, 0 },
123 /* EVEX_LEN_0F38C6_REG_2_PREFIX_2 */
127 { "vgatherpf1dp%XW", { MVexVSIBDWpX
}, 0 },
130 /* EVEX_LEN_0F38C6_REG_5_PREFIX_2 */
134 { "vscatterpf0dp%XW", { MVexVSIBDWpX
}, 0 },
137 /* EVEX_LEN_0F38C6_REG_6_PREFIX_2 */
141 { "vscatterpf1dp%XW", { MVexVSIBDWpX
}, 0 },
144 /* EVEX_LEN_0F38C7_R_1_P_2_W_0 */
148 { "vgatherpf0qps", { MVexVSIBDQWpX
}, 0 },
151 /* EVEX_LEN_0F38C7_R_1_P_2_W_1 */
155 { "vgatherpf0qpd", { MVexVSIBQWpX
}, 0 },
158 /* EVEX_LEN_0F38C7_R_2_P_2_W_0 */
162 { "vgatherpf1qps", { MVexVSIBDQWpX
}, 0 },
165 /* EVEX_LEN_0F38C7_R_2_P_2_W_1 */
169 { "vgatherpf1qpd", { MVexVSIBQWpX
}, 0 },
172 /* EVEX_LEN_0F38C7_R_5_P_2_W_0 */
176 { "vscatterpf0qps", { MVexVSIBDQWpX
}, 0 },
179 /* EVEX_LEN_0F38C7_R_5_P_2_W_1 */
183 { "vscatterpf0qpd", { MVexVSIBQWpX
}, 0 },
186 /* EVEX_LEN_0F38C7_R_6_P_2_W_0 */
190 { "vscatterpf1qps", { MVexVSIBDQWpX
}, 0 },
193 /* EVEX_LEN_0F38C7_R_6_P_2_W_1 */
197 { "vscatterpf1qpd", { MVexVSIBQWpX
}, 0 },
200 /* EVEX_LEN_0F3A00_P_2_W_1 */
203 { "vpermq", { XM
, EXx
, Ib
}, 0 },
204 { "vpermq", { XM
, EXx
, Ib
}, 0 },
207 /* EVEX_LEN_0F3A01_P_2_W_1 */
210 { "vpermpd", { XM
, EXx
, Ib
}, 0 },
211 { "vpermpd", { XM
, EXx
, Ib
}, 0 },
214 /* EVEX_LEN_0F3A14_P_2 */
216 { "vpextrb", { Edqb
, XM
, Ib
}, 0 },
219 /* EVEX_LEN_0F3A15_P_2 */
221 { "vpextrw", { Edqw
, XM
, Ib
}, 0 },
224 /* EVEX_LEN_0F3A16_P_2 */
226 { "vpextrK", { Edq
, XM
, Ib
}, 0 },
229 /* EVEX_LEN_0F3A17_P_2 */
231 { "vextractps", { Edqd
, XMM
, Ib
}, 0 },
234 /* EVEX_LEN_0F3A18_P_2_W_0 */
237 { "vinsertf32x4", { XM
, Vex
, EXxmm
, Ib
}, 0 },
238 { "vinsertf32x4", { XM
, Vex
, EXxmm
, Ib
}, 0 },
241 /* EVEX_LEN_0F3A18_P_2_W_1 */
244 { "vinsertf64x2", { XM
, Vex
, EXxmm
, Ib
}, 0 },
245 { "vinsertf64x2", { XM
, Vex
, EXxmm
, Ib
}, 0 },
248 /* EVEX_LEN_0F3A19_P_2_W_0 */
251 { "vextractf32x4", { EXxmm
, XM
, Ib
}, 0 },
252 { "vextractf32x4", { EXxmm
, XM
, Ib
}, 0 },
255 /* EVEX_LEN_0F3A19_P_2_W_1 */
258 { "vextractf64x2", { EXxmm
, XM
, Ib
}, 0 },
259 { "vextractf64x2", { EXxmm
, XM
, Ib
}, 0 },
262 /* EVEX_LEN_0F3A1A_P_2_W_0 */
266 { "vinsertf32x8", { XM
, Vex
, EXymm
, Ib
}, 0 },
269 /* EVEX_LEN_0F3A1A_P_2_W_1 */
273 { "vinsertf64x4", { XM
, Vex
, EXymm
, Ib
}, 0 },
276 /* EVEX_LEN_0F3A1B_P_2_W_0 */
280 { "vextractf32x8", { EXymm
, XM
, Ib
}, 0 },
283 /* EVEX_LEN_0F3A1B_P_2_W_1 */
287 { "vextractf64x4", { EXymm
, XM
, Ib
}, 0 },
290 /* EVEX_LEN_0F3A20_P_2 */
292 { "vpinsrb", { XM
, Vex128
, Edqb
, Ib
}, 0 },
295 /* EVEX_LEN_0F3A21_P_2_W_0 */
297 { "vinsertps", { XMM
, Vex
, EXxmm_md
, Ib
}, 0 },
300 /* EVEX_LEN_0F3A22_P_2 */
302 { "vpinsrK", { XM
, Vex128
, Edq
, Ib
}, 0 },
305 /* EVEX_LEN_0F3A23_P_2_W_0 */
308 { "vshuff32x4", { XM
, Vex
, EXx
, Ib
}, 0 },
309 { "vshuff32x4", { XM
, Vex
, EXx
, Ib
}, 0 },
312 /* EVEX_LEN_0F3A23_P_2_W_1 */
315 { "vshuff64x2", { XM
, Vex
, EXx
, Ib
}, 0 },
316 { "vshuff64x2", { XM
, Vex
, EXx
, Ib
}, 0 },
319 /* EVEX_LEN_0F3A38_P_2_W_0 */
322 { "vinserti32x4", { XM
, Vex
, EXxmm
, Ib
}, 0 },
323 { "vinserti32x4", { XM
, Vex
, EXxmm
, Ib
}, 0 },
326 /* EVEX_LEN_0F3A38_P_2_W_1 */
329 { "vinserti64x2", { XM
, Vex
, EXxmm
, Ib
}, 0 },
330 { "vinserti64x2", { XM
, Vex
, EXxmm
, Ib
}, 0 },
333 /* EVEX_LEN_0F3A39_P_2_W_0 */
336 { "vextracti32x4", { EXxmm
, XM
, Ib
}, 0 },
337 { "vextracti32x4", { EXxmm
, XM
, Ib
}, 0 },
340 /* EVEX_LEN_0F3A39_P_2_W_1 */
343 { "vextracti64x2", { EXxmm
, XM
, Ib
}, 0 },
344 { "vextracti64x2", { EXxmm
, XM
, Ib
}, 0 },
347 /* EVEX_LEN_0F3A3A_P_2_W_0 */
351 { "vinserti32x8", { XM
, Vex
, EXymm
, Ib
}, 0 },
354 /* EVEX_LEN_0F3A3A_P_2_W_1 */
358 { "vinserti64x4", { XM
, Vex
, EXymm
, Ib
}, 0 },
361 /* EVEX_LEN_0F3A3B_P_2_W_0 */
365 { "vextracti32x8", { EXymm
, XM
, Ib
}, 0 },
368 /* EVEX_LEN_0F3A3B_P_2_W_1 */
372 { "vextracti64x4", { EXymm
, XM
, Ib
}, 0 },
375 /* EVEX_LEN_0F3A43_P_2_W_0 */
378 { "vshufi32x4", { XM
, Vex
, EXx
, Ib
}, 0 },
379 { "vshufi32x4", { XM
, Vex
, EXx
, Ib
}, 0 },
382 /* EVEX_LEN_0F3A43_P_2_W_1 */
385 { "vshufi64x2", { XM
, Vex
, EXx
, Ib
}, 0 },
386 { "vshufi64x2", { XM
, Vex
, EXx
, Ib
}, 0 },