i386-dis-evex-w.h revision 1.1 1 1.1 christos /* EVEX_W_0F10_P_1 */
2 1.1 christos {
3 1.1 christos { "vmovss", { XMScalar, VexScalarR, EXxmm_md }, 0 },
4 1.1 christos },
5 1.1 christos /* EVEX_W_0F10_P_3 */
6 1.1 christos {
7 1.1 christos { Bad_Opcode },
8 1.1 christos { "vmovsd", { XMScalar, VexScalarR, EXxmm_mq }, 0 },
9 1.1 christos },
10 1.1 christos /* EVEX_W_0F11_P_1 */
11 1.1 christos {
12 1.1 christos { "vmovss", { EXdS, VexScalarR, XMScalar }, 0 },
13 1.1 christos },
14 1.1 christos /* EVEX_W_0F11_P_3 */
15 1.1 christos {
16 1.1 christos { Bad_Opcode },
17 1.1 christos { "vmovsd", { EXqS, VexScalarR, XMScalar }, 0 },
18 1.1 christos },
19 1.1 christos /* EVEX_W_0F12_P_0_M_1 */
20 1.1 christos {
21 1.1 christos { "vmovhlps", { XMM, Vex, EXxmm_mq }, 0 },
22 1.1 christos },
23 1.1 christos /* EVEX_W_0F12_P_1 */
24 1.1 christos {
25 1.1 christos { "vmovsldup", { XM, EXEvexXNoBcst }, 0 },
26 1.1 christos },
27 1.1 christos /* EVEX_W_0F12_P_3 */
28 1.1 christos {
29 1.1 christos { Bad_Opcode },
30 1.1 christos { "vmovddup", { XM, EXymmq }, 0 },
31 1.1 christos },
32 1.1 christos /* EVEX_W_0F16_P_0_M_1 */
33 1.1 christos {
34 1.1 christos { "vmovlhps", { XMM, Vex, EXx }, 0 },
35 1.1 christos },
36 1.1 christos /* EVEX_W_0F16_P_1 */
37 1.1 christos {
38 1.1 christos { "vmovshdup", { XM, EXx }, 0 },
39 1.1 christos },
40 1.1 christos /* EVEX_W_0F2A_P_3 */
41 1.1 christos {
42 1.1 christos { "vcvtsi2sd{%LQ|}", { XMScalar, VexScalar, Ed }, 0 },
43 1.1 christos { "vcvtsi2sd{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
44 1.1 christos },
45 1.1 christos /* EVEX_W_0F51_P_1 */
46 1.1 christos {
47 1.1 christos { "vsqrtss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
48 1.1 christos },
49 1.1 christos /* EVEX_W_0F51_P_3 */
50 1.1 christos {
51 1.1 christos { Bad_Opcode },
52 1.1 christos { "vsqrtsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
53 1.1 christos },
54 1.1 christos /* EVEX_W_0F58_P_1 */
55 1.1 christos {
56 1.1 christos { "vaddss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
57 1.1 christos },
58 1.1 christos /* EVEX_W_0F58_P_3 */
59 1.1 christos {
60 1.1 christos { Bad_Opcode },
61 1.1 christos { "vaddsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
62 1.1 christos },
63 1.1 christos /* EVEX_W_0F59_P_1 */
64 1.1 christos {
65 1.1 christos { "vmulss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
66 1.1 christos },
67 1.1 christos /* EVEX_W_0F59_P_3 */
68 1.1 christos {
69 1.1 christos { Bad_Opcode },
70 1.1 christos { "vmulsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
71 1.1 christos },
72 1.1 christos /* EVEX_W_0F5A_P_0 */
73 1.1 christos {
74 1.1 christos { "vcvtps2pd", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
75 1.1 christos },
76 1.1 christos /* EVEX_W_0F5A_P_1 */
77 1.1 christos {
78 1.1 christos { "vcvtss2sd", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
79 1.1 christos },
80 1.1 christos /* EVEX_W_0F5A_P_2 */
81 1.1 christos {
82 1.1 christos { Bad_Opcode },
83 1.1 christos { "vcvtpd2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
84 1.1 christos },
85 1.1 christos /* EVEX_W_0F5A_P_3 */
86 1.1 christos {
87 1.1 christos { Bad_Opcode },
88 1.1 christos { "vcvtsd2ss", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
89 1.1 christos },
90 1.1 christos /* EVEX_W_0F5B_P_0 */
91 1.1 christos {
92 1.1 christos { "vcvtdq2ps", { XM, EXx, EXxEVexR }, 0 },
93 1.1 christos { "vcvtqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
94 1.1 christos },
95 1.1 christos /* EVEX_W_0F5B_P_1 */
96 1.1 christos {
97 1.1 christos { "vcvttps2dq", { XM, EXx, EXxEVexS }, 0 },
98 1.1 christos },
99 1.1 christos /* EVEX_W_0F5B_P_2 */
100 1.1 christos {
101 1.1 christos { "vcvtps2dq", { XM, EXx, EXxEVexR }, 0 },
102 1.1 christos },
103 1.1 christos /* EVEX_W_0F5C_P_1 */
104 1.1 christos {
105 1.1 christos { "vsubss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
106 1.1 christos },
107 1.1 christos /* EVEX_W_0F5C_P_3 */
108 1.1 christos {
109 1.1 christos { Bad_Opcode },
110 1.1 christos { "vsubsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
111 1.1 christos },
112 1.1 christos /* EVEX_W_0F5D_P_1 */
113 1.1 christos {
114 1.1 christos { "vminss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
115 1.1 christos },
116 1.1 christos /* EVEX_W_0F5D_P_3 */
117 1.1 christos {
118 1.1 christos { Bad_Opcode },
119 1.1 christos { "vminsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 },
120 1.1 christos },
121 1.1 christos /* EVEX_W_0F5E_P_1 */
122 1.1 christos {
123 1.1 christos { "vdivss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
124 1.1 christos },
125 1.1 christos /* EVEX_W_0F5E_P_3 */
126 1.1 christos {
127 1.1 christos { Bad_Opcode },
128 1.1 christos { "vdivsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
129 1.1 christos },
130 1.1 christos /* EVEX_W_0F5F_P_1 */
131 1.1 christos {
132 1.1 christos { "vmaxss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
133 1.1 christos },
134 1.1 christos /* EVEX_W_0F5F_P_3 */
135 1.1 christos {
136 1.1 christos { Bad_Opcode },
137 1.1 christos { "vmaxsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 },
138 1.1 christos },
139 1.1 christos /* EVEX_W_0F62 */
140 1.1 christos {
141 1.1 christos { "vpunpckldq", { XM, Vex, EXx }, PREFIX_DATA },
142 1.1 christos },
143 1.1 christos /* EVEX_W_0F66 */
144 1.1 christos {
145 1.1 christos { "vpcmpgtd", { XMask, Vex, EXx }, PREFIX_DATA },
146 1.1 christos },
147 1.1 christos /* EVEX_W_0F6A */
148 1.1 christos {
149 1.1 christos { "vpunpckhdq", { XM, Vex, EXx }, PREFIX_DATA },
150 1.1 christos },
151 1.1 christos /* EVEX_W_0F6B */
152 1.1 christos {
153 1.1 christos { "vpackssdw", { XM, Vex, EXx }, PREFIX_DATA },
154 1.1 christos },
155 1.1 christos /* EVEX_W_0F6C */
156 1.1 christos {
157 1.1 christos { Bad_Opcode },
158 1.1 christos { "vpunpcklqdq", { XM, Vex, EXx }, PREFIX_DATA },
159 1.1 christos },
160 1.1 christos /* EVEX_W_0F6D */
161 1.1 christos {
162 1.1 christos { Bad_Opcode },
163 1.1 christos { "vpunpckhqdq", { XM, Vex, EXx }, PREFIX_DATA },
164 1.1 christos },
165 1.1 christos /* EVEX_W_0F6F_P_1 */
166 1.1 christos {
167 1.1 christos { "vmovdqu32", { XM, EXEvexXNoBcst }, 0 },
168 1.1 christos { "vmovdqu64", { XM, EXEvexXNoBcst }, 0 },
169 1.1 christos },
170 1.1 christos /* EVEX_W_0F6F_P_2 */
171 1.1 christos {
172 1.1 christos { "vmovdqa32", { XM, EXEvexXNoBcst }, 0 },
173 1.1 christos { "vmovdqa64", { XM, EXEvexXNoBcst }, 0 },
174 1.1 christos },
175 1.1 christos /* EVEX_W_0F6F_P_3 */
176 1.1 christos {
177 1.1 christos { "vmovdqu8", { XM, EXx }, 0 },
178 1.1 christos { "vmovdqu16", { XM, EXx }, 0 },
179 1.1 christos },
180 1.1 christos /* EVEX_W_0F70_P_2 */
181 1.1 christos {
182 1.1 christos { "vpshufd", { XM, EXx, Ib }, 0 },
183 1.1 christos },
184 1.1 christos /* EVEX_W_0F72_R_2 */
185 1.1 christos {
186 1.1 christos { "vpsrld", { Vex, EXx, Ib }, PREFIX_DATA },
187 1.1 christos },
188 1.1 christos /* EVEX_W_0F72_R_6 */
189 1.1 christos {
190 1.1 christos { "vpslld", { Vex, EXx, Ib }, PREFIX_DATA },
191 1.1 christos },
192 1.1 christos /* EVEX_W_0F73_R_2 */
193 1.1 christos {
194 1.1 christos { Bad_Opcode },
195 1.1 christos { "vpsrlq", { Vex, EXx, Ib }, PREFIX_DATA },
196 1.1 christos },
197 1.1 christos /* EVEX_W_0F73_R_6 */
198 1.1 christos {
199 1.1 christos { Bad_Opcode },
200 1.1 christos { "vpsllq", { Vex, EXx, Ib }, PREFIX_DATA },
201 1.1 christos },
202 1.1 christos /* EVEX_W_0F76 */
203 1.1 christos {
204 1.1 christos { "vpcmpeqd", { XMask, Vex, EXx }, PREFIX_DATA },
205 1.1 christos },
206 1.1 christos /* EVEX_W_0F78_P_0 */
207 1.1 christos {
208 1.1 christos { "vcvttps2udq", { XM, EXx, EXxEVexS }, 0 },
209 1.1 christos { "vcvttpd2udq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
210 1.1 christos },
211 1.1 christos /* EVEX_W_0F78_P_2 */
212 1.1 christos {
213 1.1 christos { "vcvttps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
214 1.1 christos { "vcvttpd2uqq", { XM, EXx, EXxEVexS }, 0 },
215 1.1 christos },
216 1.1 christos /* EVEX_W_0F79_P_0 */
217 1.1 christos {
218 1.1 christos { "vcvtps2udq", { XM, EXx, EXxEVexR }, 0 },
219 1.1 christos { "vcvtpd2udq%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
220 1.1 christos },
221 1.1 christos /* EVEX_W_0F79_P_2 */
222 1.1 christos {
223 1.1 christos { "vcvtps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
224 1.1 christos { "vcvtpd2uqq", { XM, EXx, EXxEVexR }, 0 },
225 1.1 christos },
226 1.1 christos /* EVEX_W_0F7A_P_1 */
227 1.1 christos {
228 1.1 christos { "vcvtudq2pd", { XM, EXEvexHalfBcstXmmq }, 0 },
229 1.1 christos { "vcvtuqq2pd", { XM, EXx, EXxEVexR }, 0 },
230 1.1 christos },
231 1.1 christos /* EVEX_W_0F7A_P_2 */
232 1.1 christos {
233 1.1 christos { "vcvttps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
234 1.1 christos { "vcvttpd2qq", { XM, EXx, EXxEVexS }, 0 },
235 1.1 christos },
236 1.1 christos /* EVEX_W_0F7A_P_3 */
237 1.1 christos {
238 1.1 christos { "vcvtudq2ps", { XM, EXx, EXxEVexR }, 0 },
239 1.1 christos { "vcvtuqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
240 1.1 christos },
241 1.1 christos /* EVEX_W_0F7B_P_2 */
242 1.1 christos {
243 1.1 christos { "vcvtps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
244 1.1 christos { "vcvtpd2qq", { XM, EXx, EXxEVexR }, 0 },
245 1.1 christos },
246 1.1 christos /* EVEX_W_0F7B_P_3 */
247 1.1 christos {
248 1.1 christos { "vcvtusi2sd{%LQ|}", { XMScalar, VexScalar, Ed }, 0 },
249 1.1 christos { "vcvtusi2sd{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
250 1.1 christos },
251 1.1 christos /* EVEX_W_0F7E_P_1 */
252 1.1 christos {
253 1.1 christos { Bad_Opcode },
254 1.1 christos { "vmovq", { XMScalar, EXxmm_mq }, 0 },
255 1.1 christos },
256 1.1 christos /* EVEX_W_0F7F_P_1 */
257 1.1 christos {
258 1.1 christos { "vmovdqu32", { EXxS, XM }, 0 },
259 1.1 christos { "vmovdqu64", { EXxS, XM }, 0 },
260 1.1 christos },
261 1.1 christos /* EVEX_W_0F7F_P_2 */
262 1.1 christos {
263 1.1 christos { "vmovdqa32", { EXxS, XM }, 0 },
264 1.1 christos { "vmovdqa64", { EXxS, XM }, 0 },
265 1.1 christos },
266 1.1 christos /* EVEX_W_0F7F_P_3 */
267 1.1 christos {
268 1.1 christos { "vmovdqu8", { EXxS, XM }, 0 },
269 1.1 christos { "vmovdqu16", { EXxS, XM }, 0 },
270 1.1 christos },
271 1.1 christos /* EVEX_W_0FC2_P_1 */
272 1.1 christos {
273 1.1 christos { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, CMP }, 0 },
274 1.1 christos },
275 1.1 christos /* EVEX_W_0FC2_P_3 */
276 1.1 christos {
277 1.1 christos { Bad_Opcode },
278 1.1 christos { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, CMP }, 0 },
279 1.1 christos },
280 1.1 christos /* EVEX_W_0FD2 */
281 1.1 christos {
282 1.1 christos { "vpsrld", { XM, Vex, EXxmm }, PREFIX_DATA },
283 1.1 christos },
284 1.1 christos /* EVEX_W_0FD3 */
285 1.1 christos {
286 1.1 christos { Bad_Opcode },
287 1.1 christos { "vpsrlq", { XM, Vex, EXxmm }, PREFIX_DATA },
288 1.1 christos },
289 1.1 christos /* EVEX_W_0FD4 */
290 1.1 christos {
291 1.1 christos { Bad_Opcode },
292 1.1 christos { "vpaddq", { XM, Vex, EXx }, PREFIX_DATA },
293 1.1 christos },
294 1.1 christos /* EVEX_W_0FD6_L_0 */
295 1.1 christos {
296 1.1 christos { Bad_Opcode },
297 1.1 christos { "vmovq", { EXqS, XMScalar }, PREFIX_DATA },
298 1.1 christos },
299 1.1 christos /* EVEX_W_0FE6_P_1 */
300 1.1 christos {
301 1.1 christos { "vcvtdq2pd", { XM, EXEvexHalfBcstXmmq }, 0 },
302 1.1 christos { "vcvtqq2pd", { XM, EXx, EXxEVexR }, 0 },
303 1.1 christos },
304 1.1 christos /* EVEX_W_0FE6_P_2 */
305 1.1 christos {
306 1.1 christos { Bad_Opcode },
307 1.1 christos { "vcvttpd2dq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
308 1.1 christos },
309 1.1 christos /* EVEX_W_0FE6_P_3 */
310 1.1 christos {
311 1.1 christos { Bad_Opcode },
312 1.1 christos { "vcvtpd2dq%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
313 1.1 christos },
314 1.1 christos /* EVEX_W_0FE7 */
315 1.1 christos {
316 1.1 christos { "vmovntdq", { EXEvexXNoBcst, XM }, PREFIX_DATA },
317 1.1 christos },
318 1.1 christos /* EVEX_W_0FF2 */
319 1.1 christos {
320 1.1 christos { "vpslld", { XM, Vex, EXxmm }, PREFIX_DATA },
321 1.1 christos },
322 1.1 christos /* EVEX_W_0FF3 */
323 1.1 christos {
324 1.1 christos { Bad_Opcode },
325 1.1 christos { "vpsllq", { XM, Vex, EXxmm }, PREFIX_DATA },
326 1.1 christos },
327 1.1 christos /* EVEX_W_0FF4 */
328 1.1 christos {
329 1.1 christos { Bad_Opcode },
330 1.1 christos { "vpmuludq", { XM, Vex, EXx }, PREFIX_DATA },
331 1.1 christos },
332 1.1 christos /* EVEX_W_0FFA */
333 1.1 christos {
334 1.1 christos { "vpsubd", { XM, Vex, EXx }, PREFIX_DATA },
335 1.1 christos },
336 1.1 christos /* EVEX_W_0FFB */
337 1.1 christos {
338 1.1 christos { Bad_Opcode },
339 1.1 christos { "vpsubq", { XM, Vex, EXx }, PREFIX_DATA },
340 1.1 christos },
341 1.1 christos /* EVEX_W_0FFE */
342 1.1 christos {
343 1.1 christos { "vpaddd", { XM, Vex, EXx }, PREFIX_DATA },
344 1.1 christos },
345 1.1 christos /* EVEX_W_0F380D */
346 1.1 christos {
347 1.1 christos { Bad_Opcode },
348 1.1 christos { "vpermilpd", { XM, Vex, EXx }, PREFIX_DATA },
349 1.1 christos },
350 1.1 christos /* EVEX_W_0F3810_P_1 */
351 1.1 christos {
352 1.1 christos { "vpmovuswb", { EXxmmq, XM }, 0 },
353 1.1 christos },
354 1.1 christos /* EVEX_W_0F3810_P_2 */
355 1.1 christos {
356 1.1 christos { Bad_Opcode },
357 1.1 christos { "vpsrlvw", { XM, Vex, EXx }, 0 },
358 1.1 christos },
359 1.1 christos /* EVEX_W_0F3811_P_1 */
360 1.1 christos {
361 1.1 christos { "vpmovusdb", { EXxmmqd, XM }, 0 },
362 1.1 christos },
363 1.1 christos /* EVEX_W_0F3811_P_2 */
364 1.1 christos {
365 1.1 christos { Bad_Opcode },
366 1.1 christos { "vpsravw", { XM, Vex, EXx }, 0 },
367 1.1 christos },
368 1.1 christos /* EVEX_W_0F3812_P_1 */
369 1.1 christos {
370 1.1 christos { "vpmovusqb", { EXxmmdw, XM }, 0 },
371 1.1 christos },
372 1.1 christos /* EVEX_W_0F3812_P_2 */
373 1.1 christos {
374 1.1 christos { Bad_Opcode },
375 1.1 christos { "vpsllvw", { XM, Vex, EXx }, 0 },
376 1.1 christos },
377 1.1 christos /* EVEX_W_0F3813_P_1 */
378 1.1 christos {
379 1.1 christos { "vpmovusdw", { EXxmmq, XM }, 0 },
380 1.1 christos },
381 1.1 christos /* EVEX_W_0F3813_P_2 */
382 1.1 christos {
383 1.1 christos { "vcvtph2ps", { XM, EXxmmq, EXxEVexS }, 0 },
384 1.1 christos },
385 1.1 christos /* EVEX_W_0F3814_P_1 */
386 1.1 christos {
387 1.1 christos { "vpmovusqw", { EXxmmqd, XM }, 0 },
388 1.1 christos },
389 1.1 christos /* EVEX_W_0F3815_P_1 */
390 1.1 christos {
391 1.1 christos { "vpmovusqd", { EXxmmq, XM }, 0 },
392 1.1 christos },
393 1.1 christos /* EVEX_W_0F3819 */
394 1.1 christos {
395 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3819_W_0) },
396 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3819_W_1) },
397 1.1 christos },
398 1.1 christos /* EVEX_W_0F381A */
399 1.1 christos {
400 1.1 christos { MOD_TABLE (MOD_EVEX_0F381A_W_0) },
401 1.1 christos { MOD_TABLE (MOD_EVEX_0F381A_W_1) },
402 1.1 christos },
403 1.1 christos /* EVEX_W_0F381B */
404 1.1 christos {
405 1.1 christos { MOD_TABLE (MOD_EVEX_0F381B_W_0) },
406 1.1 christos { MOD_TABLE (MOD_EVEX_0F381B_W_1) },
407 1.1 christos },
408 1.1 christos /* EVEX_W_0F381E */
409 1.1 christos {
410 1.1 christos { "vpabsd", { XM, EXx }, PREFIX_DATA },
411 1.1 christos },
412 1.1 christos /* EVEX_W_0F381F */
413 1.1 christos {
414 1.1 christos { Bad_Opcode },
415 1.1 christos { "vpabsq", { XM, EXx }, PREFIX_DATA },
416 1.1 christos },
417 1.1 christos /* EVEX_W_0F3820_P_1 */
418 1.1 christos {
419 1.1 christos { "vpmovswb", { EXxmmq, XM }, 0 },
420 1.1 christos },
421 1.1 christos /* EVEX_W_0F3821_P_1 */
422 1.1 christos {
423 1.1 christos { "vpmovsdb", { EXxmmqd, XM }, 0 },
424 1.1 christos },
425 1.1 christos /* EVEX_W_0F3822_P_1 */
426 1.1 christos {
427 1.1 christos { "vpmovsqb", { EXxmmdw, XM }, 0 },
428 1.1 christos },
429 1.1 christos /* EVEX_W_0F3823_P_1 */
430 1.1 christos {
431 1.1 christos { "vpmovsdw", { EXxmmq, XM }, 0 },
432 1.1 christos },
433 1.1 christos /* EVEX_W_0F3824_P_1 */
434 1.1 christos {
435 1.1 christos { "vpmovsqw", { EXxmmqd, XM }, 0 },
436 1.1 christos },
437 1.1 christos /* EVEX_W_0F3825_P_1 */
438 1.1 christos {
439 1.1 christos { "vpmovsqd", { EXxmmq, XM }, 0 },
440 1.1 christos },
441 1.1 christos /* EVEX_W_0F3825_P_2 */
442 1.1 christos {
443 1.1 christos { "vpmovsxdq", { XM, EXxmmq }, 0 },
444 1.1 christos },
445 1.1 christos /* EVEX_W_0F3828_P_2 */
446 1.1 christos {
447 1.1 christos { Bad_Opcode },
448 1.1 christos { "vpmuldq", { XM, Vex, EXx }, 0 },
449 1.1 christos },
450 1.1 christos /* EVEX_W_0F3829_P_2 */
451 1.1 christos {
452 1.1 christos { Bad_Opcode },
453 1.1 christos { "vpcmpeqq", { XMask, Vex, EXx }, 0 },
454 1.1 christos },
455 1.1 christos /* EVEX_W_0F382A_P_1 */
456 1.1 christos {
457 1.1 christos { Bad_Opcode },
458 1.1 christos { MOD_TABLE (MOD_EVEX_0F382A_P_1_W_1) },
459 1.1 christos },
460 1.1 christos /* EVEX_W_0F382A_P_2 */
461 1.1 christos {
462 1.1 christos { "vmovntdqa", { XM, EXEvexXNoBcst }, 0 },
463 1.1 christos },
464 1.1 christos /* EVEX_W_0F382B */
465 1.1 christos {
466 1.1 christos { "vpackusdw", { XM, Vex, EXx }, PREFIX_DATA },
467 1.1 christos },
468 1.1 christos /* EVEX_W_0F3830_P_1 */
469 1.1 christos {
470 1.1 christos { "vpmovwb", { EXxmmq, XM }, 0 },
471 1.1 christos },
472 1.1 christos /* EVEX_W_0F3831_P_1 */
473 1.1 christos {
474 1.1 christos { "vpmovdb", { EXxmmqd, XM }, 0 },
475 1.1 christos },
476 1.1 christos /* EVEX_W_0F3832_P_1 */
477 1.1 christos {
478 1.1 christos { "vpmovqb", { EXxmmdw, XM }, 0 },
479 1.1 christos },
480 1.1 christos /* EVEX_W_0F3833_P_1 */
481 1.1 christos {
482 1.1 christos { "vpmovdw", { EXxmmq, XM }, 0 },
483 1.1 christos },
484 1.1 christos /* EVEX_W_0F3834_P_1 */
485 1.1 christos {
486 1.1 christos { "vpmovqw", { EXxmmqd, XM }, 0 },
487 1.1 christos },
488 1.1 christos /* EVEX_W_0F3835_P_1 */
489 1.1 christos {
490 1.1 christos { "vpmovqd", { EXxmmq, XM }, 0 },
491 1.1 christos },
492 1.1 christos /* EVEX_W_0F3835_P_2 */
493 1.1 christos {
494 1.1 christos { "vpmovzxdq", { XM, EXxmmq }, 0 },
495 1.1 christos },
496 1.1 christos /* EVEX_W_0F3837 */
497 1.1 christos {
498 1.1 christos { Bad_Opcode },
499 1.1 christos { "vpcmpgtq", { XMask, Vex, EXx }, PREFIX_DATA },
500 1.1 christos },
501 1.1 christos /* EVEX_W_0F383A_P_1 */
502 1.1 christos {
503 1.1 christos { MOD_TABLE (MOD_EVEX_0F383A_P_1_W_0) },
504 1.1 christos },
505 1.1 christos /* EVEX_W_0F3852_P_1 */
506 1.1 christos {
507 1.1 christos { "vdpbf16ps", { XM, Vex, EXx }, 0 },
508 1.1 christos { Bad_Opcode },
509 1.1 christos },
510 1.1 christos /* EVEX_W_0F3859 */
511 1.1 christos {
512 1.1 christos { "vbroadcasti32x2", { XM, EXxmm_mq }, PREFIX_DATA },
513 1.1 christos { "vpbroadcastq", { XM, EXxmm_mq }, PREFIX_DATA },
514 1.1 christos },
515 1.1 christos /* EVEX_W_0F385A */
516 1.1 christos {
517 1.1 christos { MOD_TABLE (MOD_EVEX_0F385A_W_0) },
518 1.1 christos { MOD_TABLE (MOD_EVEX_0F385A_W_1) },
519 1.1 christos },
520 1.1 christos /* EVEX_W_0F385B */
521 1.1 christos {
522 1.1 christos { MOD_TABLE (MOD_EVEX_0F385B_W_0) },
523 1.1 christos { MOD_TABLE (MOD_EVEX_0F385B_W_1) },
524 1.1 christos },
525 1.1 christos /* EVEX_W_0F3870 */
526 1.1 christos {
527 1.1 christos { Bad_Opcode },
528 1.1 christos { "vpshldvw", { XM, Vex, EXx }, PREFIX_DATA },
529 1.1 christos },
530 1.1 christos /* EVEX_W_0F3872_P_1 */
531 1.1 christos {
532 1.1 christos { "vcvtneps2bf16%XY", { XMxmmq, EXx }, 0 },
533 1.1 christos { Bad_Opcode },
534 1.1 christos },
535 1.1 christos /* EVEX_W_0F3872_P_2 */
536 1.1 christos {
537 1.1 christos { Bad_Opcode },
538 1.1 christos { "vpshrdvw", { XM, Vex, EXx }, 0 },
539 1.1 christos },
540 1.1 christos /* EVEX_W_0F3872_P_3 */
541 1.1 christos {
542 1.1 christos { "vcvtne2ps2bf16", { XM, Vex, EXx}, 0 },
543 1.1 christos { Bad_Opcode },
544 1.1 christos },
545 1.1 christos /* EVEX_W_0F387A */
546 1.1 christos {
547 1.1 christos { MOD_TABLE (MOD_EVEX_0F387A_W_0) },
548 1.1 christos },
549 1.1 christos /* EVEX_W_0F387B */
550 1.1 christos {
551 1.1 christos { MOD_TABLE (MOD_EVEX_0F387B_W_0) },
552 1.1 christos },
553 1.1 christos /* EVEX_W_0F3883 */
554 1.1 christos {
555 1.1 christos { Bad_Opcode },
556 1.1 christos { "vpmultishiftqb", { XM, Vex, EXx }, PREFIX_DATA },
557 1.1 christos },
558 1.1 christos /* EVEX_W_0F3891 */
559 1.1 christos {
560 1.1 christos { "vpgatherqd", { XMxmmq, MVexVSIBQDWpX }, PREFIX_DATA },
561 1.1 christos { "vpgatherqq", { XM, MVexVSIBQWpX }, 0 },
562 1.1 christos },
563 1.1 christos /* EVEX_W_0F3893 */
564 1.1 christos {
565 1.1 christos { "vgatherqps", { XMxmmq, MVexVSIBQDWpX }, PREFIX_DATA },
566 1.1 christos { "vgatherqpd", { XM, MVexVSIBQWpX }, 0 },
567 1.1 christos },
568 1.1 christos /* EVEX_W_0F38A1 */
569 1.1 christos {
570 1.1 christos { "vpscatterqd", { MVexVSIBQDWpX, XMxmmq }, PREFIX_DATA },
571 1.1 christos { "vpscatterqq", { MVexVSIBQWpX, XM }, 0 },
572 1.1 christos },
573 1.1 christos /* EVEX_W_0F38A3 */
574 1.1 christos {
575 1.1 christos { "vscatterqps", { MVexVSIBQDWpX, XMxmmq }, PREFIX_DATA },
576 1.1 christos { "vscatterqpd", { MVexVSIBQWpX, XM }, 0 },
577 1.1 christos },
578 1.1 christos /* EVEX_W_0F38C7_R_1_M_0 */
579 1.1 christos {
580 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_1_M_0_W_0) },
581 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_1_M_0_W_1) },
582 1.1 christos },
583 1.1 christos /* EVEX_W_0F38C7_R_2_M_0 */
584 1.1 christos {
585 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_2_M_0_W_0) },
586 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_2_M_0_W_1) },
587 1.1 christos },
588 1.1 christos /* EVEX_W_0F38C7_R_5_M_0 */
589 1.1 christos {
590 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_5_M_0_W_0) },
591 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_5_M_0_W_1) },
592 1.1 christos },
593 1.1 christos /* EVEX_W_0F38C7_R_6_M_0 */
594 1.1 christos {
595 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_6_M_0_W_0) },
596 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_R_6_M_0_W_1) },
597 1.1 christos },
598 1.1 christos /* EVEX_W_0F3A00 */
599 1.1 christos {
600 1.1 christos { Bad_Opcode },
601 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A00_W_1) },
602 1.1 christos },
603 1.1 christos /* EVEX_W_0F3A01 */
604 1.1 christos {
605 1.1 christos { Bad_Opcode },
606 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A01_W_1) },
607 1.1 christos },
608 1.1 christos /* EVEX_W_0F3A05 */
609 1.1 christos {
610 1.1 christos { Bad_Opcode },
611 1.1 christos { "vpermilpd", { XM, EXx, Ib }, PREFIX_DATA },
612 1.1 christos },
613 1.1 christos /* EVEX_W_0F3A08 */
614 1.1 christos {
615 1.1 christos { "vrndscaleps", { XM, EXx, EXxEVexS, Ib }, PREFIX_DATA },
616 1.1 christos },
617 1.1 christos /* EVEX_W_0F3A09 */
618 1.1 christos {
619 1.1 christos { Bad_Opcode },
620 1.1 christos { "vrndscalepd", { XM, EXx, EXxEVexS, Ib }, PREFIX_DATA },
621 1.1 christos },
622 1.1 christos /* EVEX_W_0F3A0A */
623 1.1 christos {
624 1.1 christos { "vrndscaless", { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, PREFIX_DATA },
625 1.1 christos },
626 1.1 christos /* EVEX_W_0F3A0B */
627 1.1 christos {
628 1.1 christos { Bad_Opcode },
629 1.1 christos { "vrndscalesd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, PREFIX_DATA },
630 1.1 christos },
631 1.1 christos /* EVEX_W_0F3A18 */
632 1.1 christos {
633 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A18_W_0) },
634 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A18_W_1) },
635 1.1 christos },
636 1.1 christos /* EVEX_W_0F3A19 */
637 1.1 christos {
638 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A19_W_0) },
639 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A19_W_1) },
640 1.1 christos },
641 1.1 christos /* EVEX_W_0F3A1A */
642 1.1 christos {
643 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A1A_W_0) },
644 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A1A_W_1) },
645 1.1 christos },
646 1.1 christos /* EVEX_W_0F3A1B */
647 1.1 christos {
648 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B_W_0) },
649 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B_W_1) },
650 1.1 christos },
651 1.1 christos /* EVEX_W_0F3A21 */
652 1.1 christos {
653 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A21_W_0) },
654 1.1 christos },
655 1.1 christos /* EVEX_W_0F3A23 */
656 1.1 christos {
657 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A23_W_0) },
658 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A23_W_1) },
659 1.1 christos },
660 1.1 christos /* EVEX_W_0F3A38 */
661 1.1 christos {
662 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A38_W_0) },
663 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A38_W_1) },
664 1.1 christos },
665 1.1 christos /* EVEX_W_0F3A39 */
666 1.1 christos {
667 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A39_W_0) },
668 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A39_W_1) },
669 1.1 christos },
670 1.1 christos /* EVEX_W_0F3A3A */
671 1.1 christos {
672 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A_W_0) },
673 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A_W_1) },
674 1.1 christos },
675 1.1 christos /* EVEX_W_0F3A3B */
676 1.1 christos {
677 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B_W_0) },
678 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B_W_1) },
679 1.1 christos },
680 1.1 christos /* EVEX_W_0F3A42 */
681 1.1 christos {
682 1.1 christos { "vdbpsadbw", { XM, Vex, EXx, Ib }, 0 },
683 1.1 christos },
684 1.1 christos /* EVEX_W_0F3A43 */
685 1.1 christos {
686 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A43_W_0) },
687 1.1 christos { EVEX_LEN_TABLE (EVEX_LEN_0F3A43_W_1) },
688 1.1 christos },
689 1.1 christos /* EVEX_W_0F3A70 */
690 1.1 christos {
691 1.1 christos { Bad_Opcode },
692 1.1 christos { "vpshldw", { XM, Vex, EXx, Ib }, 0 },
693 1.1 christos },
694 1.1 christos /* EVEX_W_0F3A72 */
695 1.1 christos {
696 1.1 christos { Bad_Opcode },
697 1.1 christos { "vpshrdw", { XM, Vex, EXx, Ib }, 0 },
698 1.1 christos },
699