Support Intel SM4 AVX10.2 extension
[binutils-gdb.git] / opcodes / i386-dis-evex.h
blobf94c0d9d6aebccdf0b58030b968a8ee73c292bc7
1 static const struct dis386 evex_table[][256] = {
2 /* EVEX_0F */
4 /* 00 */
5 { Bad_Opcode },
6 { Bad_Opcode },
7 { Bad_Opcode },
8 { Bad_Opcode },
9 { Bad_Opcode },
10 { Bad_Opcode },
11 { Bad_Opcode },
12 { Bad_Opcode },
13 /* 08 */
14 { Bad_Opcode },
15 { Bad_Opcode },
16 { Bad_Opcode },
17 { Bad_Opcode },
18 { Bad_Opcode },
19 { Bad_Opcode },
20 { Bad_Opcode },
21 { Bad_Opcode },
22 /* 10 */
23 { PREFIX_TABLE (PREFIX_0F10) },
24 { PREFIX_TABLE (PREFIX_0F11) },
25 { PREFIX_TABLE (PREFIX_VEX_0F12) },
26 { VEX_LEN_TABLE (VEX_LEN_0F13) },
27 { "%XEvunpcklpX", { XM, Vex, EXx }, PREFIX_OPCODE },
28 { "%XEvunpckhpX", { XM, Vex, EXx }, PREFIX_OPCODE },
29 { PREFIX_TABLE (PREFIX_VEX_0F16) },
30 { VEX_LEN_TABLE (VEX_LEN_0F17) },
31 /* 18 */
32 { Bad_Opcode },
33 { Bad_Opcode },
34 { Bad_Opcode },
35 { Bad_Opcode },
36 { Bad_Opcode },
37 { Bad_Opcode },
38 { Bad_Opcode },
39 { Bad_Opcode },
40 /* 20 */
41 { Bad_Opcode },
42 { Bad_Opcode },
43 { Bad_Opcode },
44 { Bad_Opcode },
45 { Bad_Opcode },
46 { Bad_Opcode },
47 { Bad_Opcode },
48 { Bad_Opcode },
49 /* 28 */
50 { "%XEvmovapX", { XM, EXx }, PREFIX_OPCODE },
51 { "%XEvmovapX", { EXxS, XM }, PREFIX_OPCODE },
52 { PREFIX_TABLE (PREFIX_VEX_0F2A) },
53 { "%XEvmovntpX", { Mx, XM }, PREFIX_OPCODE },
54 { PREFIX_TABLE (PREFIX_VEX_0F2C) },
55 { PREFIX_TABLE (PREFIX_VEX_0F2D) },
56 { PREFIX_TABLE (PREFIX_0F2E) },
57 { PREFIX_TABLE (PREFIX_0F2F) },
58 /* 30 */
59 { Bad_Opcode },
60 { Bad_Opcode },
61 { Bad_Opcode },
62 { Bad_Opcode },
63 { Bad_Opcode },
64 { Bad_Opcode },
65 { Bad_Opcode },
66 { Bad_Opcode },
67 /* 38 */
68 { Bad_Opcode },
69 { Bad_Opcode },
70 { Bad_Opcode },
71 { Bad_Opcode },
72 { Bad_Opcode },
73 { Bad_Opcode },
74 { Bad_Opcode },
75 { Bad_Opcode },
76 /* 40 */
77 { Bad_Opcode },
78 { Bad_Opcode },
79 { Bad_Opcode },
80 { Bad_Opcode },
81 { Bad_Opcode },
82 { Bad_Opcode },
83 { Bad_Opcode },
84 { Bad_Opcode },
85 /* 48 */
86 { Bad_Opcode },
87 { Bad_Opcode },
88 { Bad_Opcode },
89 { Bad_Opcode },
90 { Bad_Opcode },
91 { Bad_Opcode },
92 { Bad_Opcode },
93 { Bad_Opcode },
94 /* 50 */
95 { Bad_Opcode },
96 { PREFIX_TABLE (PREFIX_0F51) },
97 { Bad_Opcode },
98 { Bad_Opcode },
99 { "%XEvandpX", { XM, Vex, EXx }, PREFIX_OPCODE },
100 { "%XEvandnpX", { XM, Vex, EXx }, PREFIX_OPCODE },
101 { "%XEvorpX", { XM, Vex, EXx }, PREFIX_OPCODE },
102 { "%XEvxorpX", { XM, Vex, EXx }, PREFIX_OPCODE },
103 /* 58 */
104 { PREFIX_TABLE (PREFIX_0F58) },
105 { PREFIX_TABLE (PREFIX_0F59) },
106 { PREFIX_TABLE (PREFIX_0F5A) },
107 { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
108 { PREFIX_TABLE (PREFIX_0F5C) },
109 { PREFIX_TABLE (PREFIX_0F5D) },
110 { PREFIX_TABLE (PREFIX_0F5E) },
111 { PREFIX_TABLE (PREFIX_0F5F) },
112 /* 60 */
113 { "%XEvpunpcklbw", { XM, Vex, EXx }, PREFIX_DATA },
114 { "%XEvpunpcklwd", { XM, Vex, EXx }, PREFIX_DATA },
115 { VEX_W_TABLE (EVEX_W_0F62) },
116 { "%XEvpacksswb", { XM, Vex, EXx }, PREFIX_DATA },
117 { "vpcmpgtb", { MaskG, Vex, EXx }, PREFIX_DATA },
118 { "vpcmpgtw", { MaskG, Vex, EXx }, PREFIX_DATA },
119 { VEX_W_TABLE (EVEX_W_0F66) },
120 { "%XEvpackuswb", { XM, Vex, EXx }, PREFIX_DATA },
121 /* 68 */
122 { "%XEvpunpckhbw", { XM, Vex, EXx }, PREFIX_DATA },
123 { "%XEvpunpckhwd", { XM, Vex, EXx }, PREFIX_DATA },
124 { VEX_W_TABLE (EVEX_W_0F6A) },
125 { VEX_W_TABLE (EVEX_W_0F6B) },
126 { VEX_W_TABLE (EVEX_W_0F6C) },
127 { VEX_W_TABLE (EVEX_W_0F6D) },
128 { VEX_LEN_TABLE (VEX_LEN_0F6E) },
129 { PREFIX_TABLE (PREFIX_EVEX_0F6F) },
130 /* 70 */
131 { PREFIX_TABLE (PREFIX_EVEX_0F70) },
132 { REG_TABLE (REG_EVEX_0F71) },
133 { REG_TABLE (REG_EVEX_0F72) },
134 { REG_TABLE (REG_EVEX_0F73) },
135 { "vpcmpeqb", { MaskG, Vex, EXx }, PREFIX_DATA },
136 { "vpcmpeqw", { MaskG, Vex, EXx }, PREFIX_DATA },
137 { VEX_W_TABLE (EVEX_W_0F76) },
138 { Bad_Opcode },
139 /* 78 */
140 { PREFIX_TABLE (PREFIX_EVEX_0F78) },
141 { PREFIX_TABLE (PREFIX_EVEX_0F79) },
142 { PREFIX_TABLE (PREFIX_EVEX_0F7A) },
143 { PREFIX_TABLE (PREFIX_EVEX_0F7B) },
144 { Bad_Opcode },
145 { Bad_Opcode },
146 { PREFIX_TABLE (PREFIX_EVEX_0F7E) },
147 { PREFIX_TABLE (PREFIX_EVEX_0F7F) },
148 /* 80 */
149 { Bad_Opcode },
150 { Bad_Opcode },
151 { Bad_Opcode },
152 { Bad_Opcode },
153 { Bad_Opcode },
154 { Bad_Opcode },
155 { Bad_Opcode },
156 { Bad_Opcode },
157 /* 88 */
158 { Bad_Opcode },
159 { Bad_Opcode },
160 { Bad_Opcode },
161 { Bad_Opcode },
162 { Bad_Opcode },
163 { Bad_Opcode },
164 { Bad_Opcode },
165 { Bad_Opcode },
166 /* 90 */
167 { X86_64_EVEX_W_TABLE (VEX_W_0F90_L_0) },
168 { X86_64_EVEX_W_TABLE (VEX_W_0F91_L_0) },
169 { X86_64_EVEX_W_TABLE (VEX_W_0F92_L_0) },
170 { X86_64_EVEX_W_TABLE (VEX_W_0F93_L_0) },
171 { Bad_Opcode },
172 { Bad_Opcode },
173 { Bad_Opcode },
174 { Bad_Opcode },
175 /* 98 */
176 { Bad_Opcode },
177 { Bad_Opcode },
178 { Bad_Opcode },
179 { Bad_Opcode },
180 { Bad_Opcode },
181 { Bad_Opcode },
182 { Bad_Opcode },
183 { Bad_Opcode },
184 /* A0 */
185 { Bad_Opcode },
186 { Bad_Opcode },
187 { Bad_Opcode },
188 { Bad_Opcode },
189 { Bad_Opcode },
190 { Bad_Opcode },
191 { Bad_Opcode },
192 { Bad_Opcode },
193 /* A8 */
194 { Bad_Opcode },
195 { Bad_Opcode },
196 { Bad_Opcode },
197 { Bad_Opcode },
198 { Bad_Opcode },
199 { Bad_Opcode },
200 { Bad_Opcode },
201 { Bad_Opcode },
202 /* B0 */
203 { Bad_Opcode },
204 { Bad_Opcode },
205 { Bad_Opcode },
206 { Bad_Opcode },
207 { Bad_Opcode },
208 { Bad_Opcode },
209 { Bad_Opcode },
210 { Bad_Opcode },
211 /* B8 */
212 { Bad_Opcode },
213 { Bad_Opcode },
214 { Bad_Opcode },
215 { Bad_Opcode },
216 { Bad_Opcode },
217 { Bad_Opcode },
218 { Bad_Opcode },
219 { Bad_Opcode },
220 /* C0 */
221 { Bad_Opcode },
222 { Bad_Opcode },
223 { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
224 { Bad_Opcode },
225 { VEX_LEN_TABLE (VEX_LEN_0FC4) },
226 { "%XEvpextrw", { Gd, Uxmm, Ib }, PREFIX_DATA },
227 { "%XEvshufpX", { XM, Vex, EXx, Ib }, PREFIX_OPCODE },
228 { Bad_Opcode },
229 /* C8 */
230 { Bad_Opcode },
231 { Bad_Opcode },
232 { Bad_Opcode },
233 { Bad_Opcode },
234 { Bad_Opcode },
235 { Bad_Opcode },
236 { Bad_Opcode },
237 { Bad_Opcode },
238 /* D0 */
239 { Bad_Opcode },
240 { "%XEvpsrlw", { XM, Vex, EXxmm }, PREFIX_DATA },
241 { VEX_W_TABLE (EVEX_W_0FD2) },
242 { VEX_W_TABLE (EVEX_W_0FD3) },
243 { VEX_W_TABLE (EVEX_W_0FD4) },
244 { "%XEvpmullw", { XM, Vex, EXx }, PREFIX_DATA },
245 { VEX_W_TABLE (EVEX_W_0FD6) },
246 { Bad_Opcode },
247 /* D8 */
248 { "%XEvpsubusb", { XM, Vex, EXx }, PREFIX_DATA },
249 { "%XEvpsubusw", { XM, Vex, EXx }, PREFIX_DATA },
250 { "%XEvpminub", { XM, Vex, EXx }, PREFIX_DATA },
251 { "vpand%DQ", { XM, Vex, EXx }, PREFIX_DATA },
252 { "%XEvpaddusb", { XM, Vex, EXx }, PREFIX_DATA },
253 { "%XEvpaddusw", { XM, Vex, EXx }, PREFIX_DATA },
254 { "%XEvpmaxub", { XM, Vex, EXx }, PREFIX_DATA },
255 { "vpandn%DQ", { XM, Vex, EXx }, PREFIX_DATA },
256 /* E0 */
257 { "%XEvpavgb", { XM, Vex, EXx }, PREFIX_DATA },
258 { "%XEvpsraw", { XM, Vex, EXxmm }, PREFIX_DATA },
259 { VEX_W_TABLE (EVEX_W_0FE2) },
260 { "%XEvpavgw", { XM, Vex, EXx }, PREFIX_DATA },
261 { "%XEvpmulhuw", { XM, Vex, EXx }, PREFIX_DATA },
262 { "%XEvpmulhw", { XM, Vex, EXx }, PREFIX_DATA },
263 { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
264 { VEX_W_TABLE (EVEX_W_0FE7) },
265 /* E8 */
266 { "%XEvpsubsb", { XM, Vex, EXx }, PREFIX_DATA },
267 { "%XEvpsubsw", { XM, Vex, EXx }, PREFIX_DATA },
268 { "%XEvpminsw", { XM, Vex, EXx }, PREFIX_DATA },
269 { "vpor%DQ", { XM, Vex, EXx }, PREFIX_DATA },
270 { "%XEvpaddsb", { XM, Vex, EXx }, PREFIX_DATA },
271 { "%XEvpaddsw", { XM, Vex, EXx }, PREFIX_DATA },
272 { "%XEvpmaxsw", { XM, Vex, EXx }, PREFIX_DATA },
273 { "vpxor%DQ", { XM, Vex, EXx }, PREFIX_DATA },
274 /* F0 */
275 { Bad_Opcode },
276 { "%XEvpsllw", { XM, Vex, EXxmm }, PREFIX_DATA },
277 { VEX_W_TABLE (EVEX_W_0FF2) },
278 { VEX_W_TABLE (EVEX_W_0FF3) },
279 { VEX_W_TABLE (EVEX_W_0FF4) },
280 { "%XEvpmaddwd", { XM, Vex, EXx }, PREFIX_DATA },
281 { "%XEvpsadbwY", { XM, Vex, EXx }, PREFIX_DATA },
282 { Bad_Opcode },
283 /* F8 */
284 { "%XEvpsubb", { XM, Vex, EXx }, PREFIX_DATA },
285 { "%XEvpsubw", { XM, Vex, EXx }, PREFIX_DATA },
286 { VEX_W_TABLE (EVEX_W_0FFA) },
287 { VEX_W_TABLE (EVEX_W_0FFB) },
288 { "%XEvpaddb", { XM, Vex, EXx }, PREFIX_DATA },
289 { "%XEvpaddw", { XM, Vex, EXx }, PREFIX_DATA },
290 { VEX_W_TABLE (EVEX_W_0FFE) },
291 { Bad_Opcode },
293 /* EVEX_0F38 */
295 /* 00 */
296 { "%XEvpshufb", { XM, Vex, EXx }, PREFIX_DATA },
297 { Bad_Opcode },
298 { Bad_Opcode },
299 { Bad_Opcode },
300 { "%XEvpmaddubsw", { XM, Vex, EXx }, PREFIX_DATA },
301 { Bad_Opcode },
302 { Bad_Opcode },
303 { Bad_Opcode },
304 /* 08 */
305 { Bad_Opcode },
306 { Bad_Opcode },
307 { Bad_Opcode },
308 { "%XEvpmulhrsw", { XM, Vex, EXx }, PREFIX_DATA },
309 { VEX_W_TABLE (VEX_W_0F380C) },
310 { "%XEvpermilp%XD", { XM, Vex, EXx }, PREFIX_DATA },
311 { Bad_Opcode },
312 { Bad_Opcode },
313 /* 10 */
314 { PREFIX_TABLE (PREFIX_EVEX_0F3810) },
315 { PREFIX_TABLE (PREFIX_EVEX_0F3811) },
316 { PREFIX_TABLE (PREFIX_EVEX_0F3812) },
317 { PREFIX_TABLE (PREFIX_EVEX_0F3813) },
318 { PREFIX_TABLE (PREFIX_EVEX_0F3814) },
319 { PREFIX_TABLE (PREFIX_EVEX_0F3815) },
320 { EVEX_LEN_TABLE (EVEX_LEN_0F3816) },
321 { Bad_Opcode },
322 /* 18 */
323 { VEX_W_TABLE (VEX_W_0F3818) },
324 { EVEX_LEN_TABLE (EVEX_LEN_0F3819) },
325 { EVEX_LEN_TABLE (EVEX_LEN_0F381A) },
326 { EVEX_LEN_TABLE (EVEX_LEN_0F381B) },
327 { "%XEvpabsb", { XM, EXx }, PREFIX_DATA },
328 { "%XEvpabsw", { XM, EXx }, PREFIX_DATA },
329 { VEX_W_TABLE (EVEX_W_0F381E) },
330 { VEX_W_TABLE (EVEX_W_0F381F) },
331 /* 20 */
332 { PREFIX_TABLE (PREFIX_EVEX_0F3820) },
333 { PREFIX_TABLE (PREFIX_EVEX_0F3821) },
334 { PREFIX_TABLE (PREFIX_EVEX_0F3822) },
335 { PREFIX_TABLE (PREFIX_EVEX_0F3823) },
336 { PREFIX_TABLE (PREFIX_EVEX_0F3824) },
337 { PREFIX_TABLE (PREFIX_EVEX_0F3825) },
338 { PREFIX_TABLE (PREFIX_EVEX_0F3826) },
339 { PREFIX_TABLE (PREFIX_EVEX_0F3827) },
340 /* 28 */
341 { PREFIX_TABLE (PREFIX_EVEX_0F3828) },
342 { PREFIX_TABLE (PREFIX_EVEX_0F3829) },
343 { PREFIX_TABLE (PREFIX_EVEX_0F382A) },
344 { VEX_W_TABLE (EVEX_W_0F382B) },
345 { "vscalefp%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
346 { "vscalefs%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
347 { Bad_Opcode },
348 { Bad_Opcode },
349 /* 30 */
350 { PREFIX_TABLE (PREFIX_EVEX_0F3830) },
351 { PREFIX_TABLE (PREFIX_EVEX_0F3831) },
352 { PREFIX_TABLE (PREFIX_EVEX_0F3832) },
353 { PREFIX_TABLE (PREFIX_EVEX_0F3833) },
354 { PREFIX_TABLE (PREFIX_EVEX_0F3834) },
355 { PREFIX_TABLE (PREFIX_EVEX_0F3835) },
356 { EVEX_LEN_TABLE (EVEX_LEN_0F3836) },
357 { VEX_W_TABLE (EVEX_W_0F3837) },
358 /* 38 */
359 { PREFIX_TABLE (PREFIX_EVEX_0F3838) },
360 { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
361 { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
362 { "%XEvpminu%DQ", { XM, Vex, EXx }, PREFIX_DATA },
363 { "%XEvpmaxsb", { XM, Vex, EXx }, PREFIX_DATA },
364 { "%XEvpmaxs%DQ", { XM, Vex, EXx }, PREFIX_DATA },
365 { "%XEvpmaxuw", { XM, Vex, EXx }, PREFIX_DATA },
366 { "%XEvpmaxu%DQ", { XM, Vex, EXx }, PREFIX_DATA },
367 /* 40 */
368 { "%XEvpmull%DQ", { XM, Vex, EXx }, PREFIX_DATA },
369 { Bad_Opcode },
370 { "vgetexpp%XW", { XM, EXx, EXxEVexS }, PREFIX_DATA },
371 { "vgetexps%XW", { XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
372 { "vplzcnt%DQ", { XM, EXx }, PREFIX_DATA },
373 { "vpsrlv%DQ", { XM, Vex, EXx }, PREFIX_DATA },
374 { "vpsrav%DQ", { XM, Vex, EXx }, PREFIX_DATA },
375 { "vpsllv%DQ", { XM, Vex, EXx }, PREFIX_DATA },
376 /* 48 */
377 { Bad_Opcode },
378 { X86_64_EVEX_MEM_W_TABLE (VEX_W_0F3849_X86_64_L_0) },
379 { Bad_Opcode },
380 { X86_64_EVEX_MEM_W_TABLE (VEX_W_0F384B_X86_64_L_0) },
381 { "vrcp14p%XW", { XM, EXx }, PREFIX_DATA },
382 { "vrcp14s%XW", { XMScalar, VexScalar, EXdq }, PREFIX_DATA },
383 { "vrsqrt14p%XW", { XM, EXx }, 0 },
384 { "vrsqrt14s%XW", { XMScalar, VexScalar, EXdq }, PREFIX_DATA },
385 /* 50 */
386 { VEX_W_TABLE (VEX_W_0F3850) },
387 { VEX_W_TABLE (VEX_W_0F3851) },
388 { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
389 { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
390 { "vpopcnt%BW", { XM, EXx }, PREFIX_DATA },
391 { "vpopcnt%DQ", { XM, EXx }, PREFIX_DATA },
392 { Bad_Opcode },
393 { Bad_Opcode },
394 /* 58 */
395 { VEX_W_TABLE (VEX_W_0F3858) },
396 { VEX_W_TABLE (EVEX_W_0F3859) },
397 { EVEX_LEN_TABLE (EVEX_LEN_0F385A) },
398 { EVEX_LEN_TABLE (EVEX_LEN_0F385B) },
399 { Bad_Opcode },
400 { Bad_Opcode },
401 { Bad_Opcode },
402 { Bad_Opcode },
403 /* 60 */
404 { Bad_Opcode },
405 { Bad_Opcode },
406 { "vpexpand%BW", { XM, EXbwUnit }, PREFIX_DATA },
407 { "vpcompress%BW", { EXbwUnit, XM }, PREFIX_DATA },
408 { "vpblendm%DQ", { XM, Vex, EXx }, PREFIX_DATA },
409 { "vblendmp%XW", { XM, Vex, EXx }, PREFIX_DATA },
410 { "vpblendm%BW", { XM, Vex, EXx }, PREFIX_DATA },
411 { "vcvt2p%XS2phx", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
412 /* 68 */
413 { PREFIX_TABLE (PREFIX_EVEX_0F3868) },
414 { Bad_Opcode },
415 { Bad_Opcode },
416 { Bad_Opcode },
417 { Bad_Opcode },
418 { Bad_Opcode },
419 { Bad_Opcode },
420 { Bad_Opcode },
421 /* 70 */
422 { VEX_W_TABLE (EVEX_W_0F3870) },
423 { "vpshldv%DQ", { XM, Vex, EXx }, PREFIX_DATA },
424 { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
425 { "vpshrdv%DQ", { XM, Vex, EXx }, PREFIX_DATA },
426 { PREFIX_TABLE (PREFIX_EVEX_0F3874) },
427 { "vpermi2%BW", { XM, Vex, EXx }, PREFIX_DATA },
428 { "vpermi2%DQ", { XM, Vex, EXx }, PREFIX_DATA },
429 { "vpermi2p%XW", { XM, Vex, EXx }, PREFIX_DATA },
430 /* 78 */
431 { VEX_W_TABLE (VEX_W_0F3878) },
432 { VEX_W_TABLE (VEX_W_0F3879) },
433 { VEX_W_TABLE (EVEX_W_0F387A) },
434 { VEX_W_TABLE (EVEX_W_0F387B) },
435 { "vpbroadcastK", { XM, Rdq }, PREFIX_DATA },
436 { "vpermt2%BW", { XM, Vex, EXx }, PREFIX_DATA },
437 { "vpermt2%DQ", { XM, Vex, EXx }, PREFIX_DATA },
438 { "vpermt2p%XW", { XM, Vex, EXx }, PREFIX_DATA },
439 /* 80 */
440 { Bad_Opcode },
441 { Bad_Opcode },
442 { Bad_Opcode },
443 { VEX_W_TABLE (EVEX_W_0F3883) },
444 { Bad_Opcode },
445 { Bad_Opcode },
446 { Bad_Opcode },
447 { Bad_Opcode },
448 /* 88 */
449 { "vexpandp%XW", { XM, EXEvexXGscat }, PREFIX_DATA },
450 { "vpexpand%DQ", { XM, EXEvexXGscat }, PREFIX_DATA },
451 { "vcompressp%XW", { EXEvexXGscat, XM }, PREFIX_DATA },
452 { "vpcompress%DQ", { EXEvexXGscat, XM }, PREFIX_DATA },
453 { Bad_Opcode },
454 { "vperm%BW", { XM, Vex, EXx }, PREFIX_DATA },
455 { Bad_Opcode },
456 { "vpshufbitqmb", { MaskG, Vex, EXx }, PREFIX_DATA },
457 /* 90 */
458 { "vpgatherd%DQ", { XMGatherD, MVexVSIBDWpX }, PREFIX_DATA },
459 { "vpgatherq%DQ", { XMGatherQ, MVexVSIBQWpX }, PREFIX_DATA },
460 { "vgatherdp%XW", { XMGatherD, MVexVSIBDWpX }, PREFIX_DATA },
461 { "vgatherqp%XW", { XMGatherQ, MVexVSIBQWpX }, PREFIX_DATA },
462 { Bad_Opcode },
463 { Bad_Opcode },
464 { "%XEvfmaddsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
465 { "%XEvfmsubadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
466 /* 98 */
467 { "%XEvfmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
468 { "%XEvfmadd132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
469 { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
470 { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
471 { "%XEvfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
472 { "%XEvfnmadd132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
473 { "%XEvfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
474 { "%XEvfnmsub132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
475 /* A0 */
476 { "vpscatterd%DQ", { MVexVSIBDWpX, XM }, PREFIX_DATA },
477 { "vpscatterq%DQ", { MVexVSIBQWpX, XMGatherQ }, PREFIX_DATA },
478 { "vscatterdp%XW", { MVexVSIBDWpX, XM }, PREFIX_DATA },
479 { "vscatterqp%XW", { MVexVSIBQWpX, XMGatherQ }, PREFIX_DATA },
480 { Bad_Opcode },
481 { Bad_Opcode },
482 { "%XEvfmaddsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
483 { "%XEvfmsubadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
484 /* A8 */
485 { "%XEvfmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
486 { "%XEvfmadd213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
487 { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
488 { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
489 { "%XEvfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
490 { "%XEvfnmadd213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
491 { "%XEvfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
492 { "%XEvfnmsub213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
493 /* B0 */
494 { Bad_Opcode },
495 { Bad_Opcode },
496 { Bad_Opcode },
497 { Bad_Opcode },
498 { VEX_W_TABLE (VEX_W_0F38B4) },
499 { VEX_W_TABLE (VEX_W_0F38B5) },
500 { "%XEvfmaddsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
501 { "%XEvfmsubadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
502 /* B8 */
503 { "%XEvfmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
504 { "%XEvfmadd231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
505 { "%XEvfmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
506 { "%XEvfmsub231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
507 { "%XEvfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
508 { "%XEvfnmadd231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
509 { "%XEvfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
510 { "%XEvfnmsub231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
511 /* C0 */
512 { Bad_Opcode },
513 { Bad_Opcode },
514 { Bad_Opcode },
515 { Bad_Opcode },
516 { "vpconflict%DQ", { XM, EXx }, PREFIX_DATA },
517 { Bad_Opcode },
518 { EVEX_LEN_TABLE (EVEX_LEN_0F38C6) },
519 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7) },
520 /* C8 */
521 { "vexp2p%XW", { XM, EXx, EXxEVexS }, PREFIX_DATA },
522 { Bad_Opcode },
523 { "vrcp28p%XW", { XM, EXx, EXxEVexS }, PREFIX_DATA },
524 { "vrcp28s%XW", { XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
525 { "vrsqrt28p%XW", { XM, EXx, EXxEVexS }, PREFIX_DATA },
526 { "vrsqrt28s%XW", { XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
527 { Bad_Opcode },
528 { VEX_W_TABLE (VEX_W_0F38CF) },
529 /* D0 */
530 { Bad_Opcode },
531 { Bad_Opcode },
532 { VEX_W_TABLE (VEX_W_0F38D2) },
533 { VEX_W_TABLE (VEX_W_0F38D3) },
534 { Bad_Opcode },
535 { Bad_Opcode },
536 { Bad_Opcode },
537 { Bad_Opcode },
538 /* D8 */
539 { Bad_Opcode },
540 { Bad_Opcode },
541 { VEX_W_TABLE (VEX_W_0F38DA) },
542 { Bad_Opcode },
543 { "%XEvaesencY", { XM, Vex, EXx }, PREFIX_DATA },
544 { "%XEvaesenclastY", { XM, Vex, EXx }, PREFIX_DATA },
545 { "%XEvaesdecY", { XM, Vex, EXx }, PREFIX_DATA },
546 { "%XEvaesdeclastY", { XM, Vex, EXx }, PREFIX_DATA },
547 /* E0 */
548 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
549 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
550 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
551 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
552 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
553 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
554 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
555 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
556 /* E8 */
557 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
558 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
559 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
560 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
561 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
562 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
563 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
564 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex) },
565 /* F0 */
566 { Bad_Opcode },
567 { Bad_Opcode },
568 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F2_L_0) },
569 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F3_L_0) },
570 { Bad_Opcode },
571 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F5_L_0) },
572 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F6_L_0) },
573 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F7_L_0) },
574 /* F8 */
575 { Bad_Opcode },
576 { Bad_Opcode },
577 { Bad_Opcode },
578 { Bad_Opcode },
579 { Bad_Opcode },
580 { Bad_Opcode },
581 { Bad_Opcode },
582 { Bad_Opcode },
584 /* EVEX_0F3A */
586 /* 00 */
587 { EVEX_LEN_TABLE (EVEX_LEN_0F3A00) },
588 { EVEX_LEN_TABLE (EVEX_LEN_0F3A01) },
589 { Bad_Opcode },
590 { "valign%DQ", { XM, Vex, EXx, Ib }, PREFIX_DATA },
591 { VEX_W_TABLE (VEX_W_0F3A04) },
592 { "%XEvpermilp%XD", { XM, EXx, Ib }, PREFIX_DATA },
593 { Bad_Opcode },
594 { Bad_Opcode },
595 /* 08 */
596 { PREFIX_TABLE (PREFIX_EVEX_0F3A08) },
597 { "vrndscalep%XD", { XM, EXx, EXxEVexS, Ib }, PREFIX_DATA },
598 { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) },
599 { "vrndscales%XD", { XMScalar, VexScalar, EXq, EXxEVexS, Ib }, PREFIX_DATA },
600 { Bad_Opcode },
601 { Bad_Opcode },
602 { Bad_Opcode },
603 { "%XEvpalignr", { XM, Vex, EXx, Ib }, PREFIX_DATA },
604 /* 10 */
605 { Bad_Opcode },
606 { Bad_Opcode },
607 { Bad_Opcode },
608 { Bad_Opcode },
609 { VEX_LEN_TABLE (VEX_LEN_0F3A14) },
610 { VEX_LEN_TABLE (VEX_LEN_0F3A15) },
611 { VEX_LEN_TABLE (VEX_LEN_0F3A16) },
612 { VEX_LEN_TABLE (VEX_LEN_0F3A17) },
613 /* 18 */
614 { EVEX_LEN_TABLE (EVEX_LEN_0F3A18) },
615 { EVEX_LEN_TABLE (EVEX_LEN_0F3A19) },
616 { EVEX_LEN_TABLE (EVEX_LEN_0F3A1A) },
617 { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B) },
618 { Bad_Opcode },
619 { VEX_W_TABLE (VEX_W_0F3A1D) },
620 { "vpcmpu%DQ", { MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
621 { "vpcmp%DQ", { MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
622 /* 20 */
623 { VEX_LEN_TABLE (VEX_LEN_0F3A20) },
624 { VEX_W_TABLE (EVEX_W_0F3A21) },
625 { VEX_LEN_TABLE (VEX_LEN_0F3A22) },
626 { EVEX_LEN_TABLE (EVEX_LEN_0F3A23) },
627 { Bad_Opcode },
628 { "vpternlog%DQ", { XM, Vex, EXx, Ib }, PREFIX_DATA },
629 { PREFIX_TABLE (PREFIX_EVEX_0F3A26) },
630 { PREFIX_TABLE (PREFIX_EVEX_0F3A27) },
631 /* 28 */
632 { Bad_Opcode },
633 { Bad_Opcode },
634 { Bad_Opcode },
635 { Bad_Opcode },
636 { Bad_Opcode },
637 { Bad_Opcode },
638 { Bad_Opcode },
639 { Bad_Opcode },
640 /* 30 */
641 { Bad_Opcode },
642 { Bad_Opcode },
643 { Bad_Opcode },
644 { Bad_Opcode },
645 { Bad_Opcode },
646 { Bad_Opcode },
647 { Bad_Opcode },
648 { Bad_Opcode },
649 /* 38 */
650 { EVEX_LEN_TABLE (EVEX_LEN_0F3A38) },
651 { EVEX_LEN_TABLE (EVEX_LEN_0F3A39) },
652 { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A) },
653 { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B) },
654 { Bad_Opcode },
655 { Bad_Opcode },
656 { "vpcmpu%BW", { MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
657 { "vpcmp%BW", { MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
658 /* 40 */
659 { Bad_Opcode },
660 { Bad_Opcode },
661 { VEX_W_TABLE (EVEX_W_0F3A42) },
662 { EVEX_LEN_TABLE (EVEX_LEN_0F3A43) },
663 { "%XEvpclmulqdqY", { XM, Vex, EXx, PCLMUL }, PREFIX_DATA },
664 { Bad_Opcode },
665 { Bad_Opcode },
666 { Bad_Opcode },
667 /* 48 */
668 { Bad_Opcode },
669 { Bad_Opcode },
670 { Bad_Opcode },
671 { Bad_Opcode },
672 { Bad_Opcode },
673 { Bad_Opcode },
674 { Bad_Opcode },
675 { Bad_Opcode },
676 /* 50 */
677 { "vrangep%XW", { XM, Vex, EXx, EXxEVexS, Ib }, PREFIX_DATA },
678 { "vranges%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, PREFIX_DATA },
679 { Bad_Opcode },
680 { Bad_Opcode },
681 { "vfixupimmp%XW", { XM, Vex, EXx, EXxEVexS, Ib }, PREFIX_DATA },
682 { "vfixupimms%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, PREFIX_DATA },
683 { PREFIX_TABLE (PREFIX_EVEX_0F3A56) },
684 { PREFIX_TABLE (PREFIX_EVEX_0F3A57) },
685 /* 58 */
686 { Bad_Opcode },
687 { Bad_Opcode },
688 { Bad_Opcode },
689 { Bad_Opcode },
690 { Bad_Opcode },
691 { Bad_Opcode },
692 { Bad_Opcode },
693 { Bad_Opcode },
694 /* 60 */
695 { Bad_Opcode },
696 { Bad_Opcode },
697 { Bad_Opcode },
698 { Bad_Opcode },
699 { Bad_Opcode },
700 { Bad_Opcode },
701 { PREFIX_TABLE (PREFIX_EVEX_0F3A66) },
702 { PREFIX_TABLE (PREFIX_EVEX_0F3A67) },
703 /* 68 */
704 { Bad_Opcode },
705 { Bad_Opcode },
706 { Bad_Opcode },
707 { Bad_Opcode },
708 { Bad_Opcode },
709 { Bad_Opcode },
710 { Bad_Opcode },
711 { Bad_Opcode },
712 /* 70 */
713 { VEX_W_TABLE (EVEX_W_0F3A70) },
714 { "vpshld%DQ", { XM, Vex, EXx, Ib }, PREFIX_DATA },
715 { VEX_W_TABLE (EVEX_W_0F3A72) },
716 { "vpshrd%DQ", { XM, Vex, EXx, Ib }, PREFIX_DATA },
717 { Bad_Opcode },
718 { Bad_Opcode },
719 { Bad_Opcode },
720 { Bad_Opcode },
721 /* 78 */
722 { Bad_Opcode },
723 { Bad_Opcode },
724 { Bad_Opcode },
725 { Bad_Opcode },
726 { Bad_Opcode },
727 { Bad_Opcode },
728 { Bad_Opcode },
729 { Bad_Opcode },
730 /* 80 */
731 { Bad_Opcode },
732 { Bad_Opcode },
733 { Bad_Opcode },
734 { Bad_Opcode },
735 { Bad_Opcode },
736 { Bad_Opcode },
737 { Bad_Opcode },
738 { Bad_Opcode },
739 /* 88 */
740 { Bad_Opcode },
741 { Bad_Opcode },
742 { Bad_Opcode },
743 { Bad_Opcode },
744 { Bad_Opcode },
745 { Bad_Opcode },
746 { Bad_Opcode },
747 { Bad_Opcode },
748 /* 90 */
749 { Bad_Opcode },
750 { Bad_Opcode },
751 { Bad_Opcode },
752 { Bad_Opcode },
753 { Bad_Opcode },
754 { Bad_Opcode },
755 { Bad_Opcode },
756 { Bad_Opcode },
757 /* 98 */
758 { Bad_Opcode },
759 { Bad_Opcode },
760 { Bad_Opcode },
761 { Bad_Opcode },
762 { Bad_Opcode },
763 { Bad_Opcode },
764 { Bad_Opcode },
765 { Bad_Opcode },
766 /* A0 */
767 { Bad_Opcode },
768 { Bad_Opcode },
769 { Bad_Opcode },
770 { Bad_Opcode },
771 { Bad_Opcode },
772 { Bad_Opcode },
773 { Bad_Opcode },
774 { Bad_Opcode },
775 /* A8 */
776 { Bad_Opcode },
777 { Bad_Opcode },
778 { Bad_Opcode },
779 { Bad_Opcode },
780 { Bad_Opcode },
781 { Bad_Opcode },
782 { Bad_Opcode },
783 { Bad_Opcode },
784 /* B0 */
785 { Bad_Opcode },
786 { Bad_Opcode },
787 { Bad_Opcode },
788 { Bad_Opcode },
789 { Bad_Opcode },
790 { Bad_Opcode },
791 { Bad_Opcode },
792 { Bad_Opcode },
793 /* B8 */
794 { Bad_Opcode },
795 { Bad_Opcode },
796 { Bad_Opcode },
797 { Bad_Opcode },
798 { Bad_Opcode },
799 { Bad_Opcode },
800 { Bad_Opcode },
801 { Bad_Opcode },
802 /* C0 */
803 { Bad_Opcode },
804 { Bad_Opcode },
805 { PREFIX_TABLE (PREFIX_EVEX_0F3AC2) },
806 { Bad_Opcode },
807 { Bad_Opcode },
808 { Bad_Opcode },
809 { Bad_Opcode },
810 { Bad_Opcode },
811 /* C8 */
812 { Bad_Opcode },
813 { Bad_Opcode },
814 { Bad_Opcode },
815 { Bad_Opcode },
816 { Bad_Opcode },
817 { Bad_Opcode },
818 { VEX_W_TABLE (VEX_W_0F3ACE) },
819 { VEX_W_TABLE (VEX_W_0F3ACF) },
820 /* D0 */
821 { Bad_Opcode },
822 { Bad_Opcode },
823 { Bad_Opcode },
824 { Bad_Opcode },
825 { Bad_Opcode },
826 { Bad_Opcode },
827 { Bad_Opcode },
828 { Bad_Opcode },
829 /* D8 */
830 { Bad_Opcode },
831 { Bad_Opcode },
832 { Bad_Opcode },
833 { Bad_Opcode },
834 { Bad_Opcode },
835 { Bad_Opcode },
836 { Bad_Opcode },
837 { Bad_Opcode },
838 /* E0 */
839 { Bad_Opcode },
840 { Bad_Opcode },
841 { Bad_Opcode },
842 { Bad_Opcode },
843 { Bad_Opcode },
844 { Bad_Opcode },
845 { Bad_Opcode },
846 { Bad_Opcode },
847 /* E8 */
848 { Bad_Opcode },
849 { Bad_Opcode },
850 { Bad_Opcode },
851 { Bad_Opcode },
852 { Bad_Opcode },
853 { Bad_Opcode },
854 { Bad_Opcode },
855 { Bad_Opcode },
856 /* F0 */
857 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F3AF0_L_0) },
858 { Bad_Opcode },
859 { Bad_Opcode },
860 { Bad_Opcode },
861 { Bad_Opcode },
862 { Bad_Opcode },
863 { Bad_Opcode },
864 { Bad_Opcode },
865 /* F8 */
866 { Bad_Opcode },
867 { Bad_Opcode },
868 { Bad_Opcode },
869 { Bad_Opcode },
870 { Bad_Opcode },
871 { Bad_Opcode },
872 { Bad_Opcode },
873 { Bad_Opcode },
875 /* EVEX_MAP4_ */
877 /* 00 */
878 { "%NFaddB", { VexGb, Eb, Gb }, NO_PREFIX },
879 { "%NFaddS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
880 { "%NFaddB", { VexGb, Gb, EbS }, NO_PREFIX },
881 { "%NFaddS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
882 { Bad_Opcode },
883 { Bad_Opcode },
884 { Bad_Opcode },
885 { Bad_Opcode },
886 /* 08 */
887 { "%NForB", { VexGb, Eb, Gb }, NO_PREFIX },
888 { "%NForS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
889 { "%NForB", { VexGb, Gb, EbS }, NO_PREFIX },
890 { "%NForS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
891 { Bad_Opcode },
892 { Bad_Opcode },
893 { Bad_Opcode },
894 { Bad_Opcode },
895 /* 10 */
896 { "adcB", { VexGb, Eb, Gb }, NO_PREFIX },
897 { "adcS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
898 { "adcB", { VexGb, Gb, EbS }, NO_PREFIX },
899 { "adcS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
900 { Bad_Opcode },
901 { Bad_Opcode },
902 { Bad_Opcode },
903 { Bad_Opcode },
904 /* 18 */
905 { "sbbB", { VexGb, Eb, Gb }, NO_PREFIX },
906 { "sbbS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
907 { "sbbB", { VexGb, Gb, EbS }, NO_PREFIX },
908 { "sbbS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
909 { Bad_Opcode },
910 { Bad_Opcode },
911 { Bad_Opcode },
912 { Bad_Opcode },
913 /* 20 */
914 { "%NFandB", { VexGb, Eb, Gb }, NO_PREFIX },
915 { "%NFandS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
916 { "%NFandB", { VexGb, Gb, EbS }, NO_PREFIX },
917 { "%NFandS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
918 { "%NFshldS", { VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
919 { Bad_Opcode },
920 { Bad_Opcode },
921 { Bad_Opcode },
922 /* 28 */
923 { "%NFsubB", { VexGb, Eb, Gb }, NO_PREFIX },
924 { "%NFsubS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
925 { "%NFsubB", { VexGb, Gb, EbS }, NO_PREFIX },
926 { "%NFsubS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
927 { "%NFshrdS", { VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
928 { Bad_Opcode },
929 { Bad_Opcode },
930 { Bad_Opcode },
931 /* 30 */
932 { "%NFxorB", { VexGb, Eb, Gb }, NO_PREFIX },
933 { "%NFxorS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
934 { "%NFxorB", { VexGb, Gb, EbS }, NO_PREFIX },
935 { "%NFxorS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
936 { Bad_Opcode },
937 { Bad_Opcode },
938 { Bad_Opcode },
939 { Bad_Opcode },
940 /* 38 */
941 { "%NEccmp%SCB%DF", { Eb, Gb }, 0 },
942 { "%NEccmp%SCS%DF", { Ev, Gv }, PREFIX_NP_OR_DATA },
943 { "%NEccmp%SCB%DF", { Gb, EbS }, 0 },
944 { "%NEccmp%SCS%DF", { Gv, EvS }, PREFIX_NP_OR_DATA },
945 { Bad_Opcode },
946 { Bad_Opcode },
947 { Bad_Opcode },
948 { Bad_Opcode },
949 /* 40 */
950 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
951 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
952 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
953 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
954 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
955 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
956 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
957 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
958 /* 48 */
959 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
960 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
961 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
962 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
963 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
964 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
965 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
966 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x) },
967 /* 50 */
968 { Bad_Opcode },
969 { Bad_Opcode },
970 { Bad_Opcode },
971 { Bad_Opcode },
972 { Bad_Opcode },
973 { Bad_Opcode },
974 { Bad_Opcode },
975 { Bad_Opcode },
976 /* 58 */
977 { Bad_Opcode },
978 { Bad_Opcode },
979 { Bad_Opcode },
980 { Bad_Opcode },
981 { Bad_Opcode },
982 { Bad_Opcode },
983 { Bad_Opcode },
984 { Bad_Opcode },
985 /* 60 */
986 { MOD_TABLE (MOD_EVEX_MAP4_60) },
987 { MOD_TABLE (MOD_EVEX_MAP4_61) },
988 { Bad_Opcode },
989 { Bad_Opcode },
990 { Bad_Opcode },
991 { "wrussK", { M, Gdq }, PREFIX_DATA },
992 { PREFIX_TABLE (PREFIX_0F38F6) },
993 { Bad_Opcode },
994 /* 68 */
995 { Bad_Opcode },
996 { "%NFimul%ZUS", { Gv, Ev, Iv }, PREFIX_NP_OR_DATA },
997 { Bad_Opcode },
998 { "%NFimul%ZUS", { Gv, Ev, sIb }, PREFIX_NP_OR_DATA },
999 { Bad_Opcode },
1000 { Bad_Opcode },
1001 { Bad_Opcode },
1002 { Bad_Opcode },
1003 /* 70 */
1004 { Bad_Opcode },
1005 { Bad_Opcode },
1006 { Bad_Opcode },
1007 { Bad_Opcode },
1008 { Bad_Opcode },
1009 { Bad_Opcode },
1010 { Bad_Opcode },
1011 { Bad_Opcode },
1012 /* 78 */
1013 { Bad_Opcode },
1014 { Bad_Opcode },
1015 { Bad_Opcode },
1016 { Bad_Opcode },
1017 { Bad_Opcode },
1018 { Bad_Opcode },
1019 { Bad_Opcode },
1020 { Bad_Opcode },
1021 /* 80 */
1022 { REG_TABLE (REG_EVEX_MAP4_80) },
1023 { REG_TABLE (REG_EVEX_MAP4_81) },
1024 { Bad_Opcode },
1025 { REG_TABLE (REG_EVEX_MAP4_83) },
1026 { "%NEctest%SCB%DF", { Eb, Gb }, NO_PREFIX },
1027 { "%NEctest%SCS%DF", { Ev, Gv }, PREFIX_NP_OR_DATA },
1028 { Bad_Opcode },
1029 { Bad_Opcode },
1030 /* 88 */
1031 { "%NFpopcntS", { Gv, Ev }, PREFIX_NP_OR_DATA },
1032 { Bad_Opcode },
1033 { Bad_Opcode },
1034 { Bad_Opcode },
1035 { Bad_Opcode },
1036 { Bad_Opcode },
1037 { Bad_Opcode },
1038 { REG_TABLE (REG_EVEX_MAP4_8F) },
1039 /* 90 */
1040 { Bad_Opcode },
1041 { Bad_Opcode },
1042 { Bad_Opcode },
1043 { Bad_Opcode },
1044 { Bad_Opcode },
1045 { Bad_Opcode },
1046 { Bad_Opcode },
1047 { Bad_Opcode },
1048 /* 98 */
1049 { Bad_Opcode },
1050 { Bad_Opcode },
1051 { Bad_Opcode },
1052 { Bad_Opcode },
1053 { Bad_Opcode },
1054 { Bad_Opcode },
1055 { Bad_Opcode },
1056 { Bad_Opcode },
1057 /* A0 */
1058 { Bad_Opcode },
1059 { Bad_Opcode },
1060 { Bad_Opcode },
1061 { Bad_Opcode },
1062 { Bad_Opcode },
1063 { "%NFshldS", { VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
1064 { Bad_Opcode },
1065 { Bad_Opcode },
1066 /* A8 */
1067 { Bad_Opcode },
1068 { Bad_Opcode },
1069 { Bad_Opcode },
1070 { Bad_Opcode },
1071 { Bad_Opcode },
1072 { "%NFshrdS", { VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
1073 { Bad_Opcode },
1074 { "%NFimulS", { VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
1075 /* B0 */
1076 { Bad_Opcode },
1077 { Bad_Opcode },
1078 { Bad_Opcode },
1079 { Bad_Opcode },
1080 { Bad_Opcode },
1081 { Bad_Opcode },
1082 { Bad_Opcode },
1083 { Bad_Opcode },
1084 /* B8 */
1085 { Bad_Opcode },
1086 { Bad_Opcode },
1087 { Bad_Opcode },
1088 { Bad_Opcode },
1089 { Bad_Opcode },
1090 { Bad_Opcode },
1091 { Bad_Opcode },
1092 { Bad_Opcode },
1093 /* C0 */
1094 { REG_TABLE (REG_C0) },
1095 { REG_TABLE (REG_C1) },
1096 { Bad_Opcode },
1097 { Bad_Opcode },
1098 { Bad_Opcode },
1099 { Bad_Opcode },
1100 { Bad_Opcode },
1101 { Bad_Opcode },
1102 /* C8 */
1103 { Bad_Opcode },
1104 { Bad_Opcode },
1105 { Bad_Opcode },
1106 { Bad_Opcode },
1107 { Bad_Opcode },
1108 { Bad_Opcode },
1109 { Bad_Opcode },
1110 { Bad_Opcode },
1111 /* D0 */
1112 { REG_TABLE (REG_D0) },
1113 { REG_TABLE (REG_D1) },
1114 { REG_TABLE (REG_D2) },
1115 { REG_TABLE (REG_D3) },
1116 { Bad_Opcode },
1117 { Bad_Opcode },
1118 { Bad_Opcode },
1119 { Bad_Opcode },
1120 /* D8 */
1121 { Bad_Opcode },
1122 { Bad_Opcode },
1123 { Bad_Opcode },
1124 { Bad_Opcode },
1125 { Bad_Opcode },
1126 { Bad_Opcode },
1127 { Bad_Opcode },
1128 { Bad_Opcode },
1129 /* E0 */
1130 { Bad_Opcode },
1131 { Bad_Opcode },
1132 { Bad_Opcode },
1133 { Bad_Opcode },
1134 { Bad_Opcode },
1135 { Bad_Opcode },
1136 { Bad_Opcode },
1137 { Bad_Opcode },
1138 /* E8 */
1139 { Bad_Opcode },
1140 { Bad_Opcode },
1141 { Bad_Opcode },
1142 { Bad_Opcode },
1143 { Bad_Opcode },
1144 { Bad_Opcode },
1145 { Bad_Opcode },
1146 { Bad_Opcode },
1147 /* F0 */
1148 { PREFIX_TABLE (PREFIX_EVEX_MAP4_F0) },
1149 { PREFIX_TABLE (PREFIX_EVEX_MAP4_F1) },
1150 { PREFIX_TABLE (PREFIX_EVEX_MAP4_F2) },
1151 { Bad_Opcode },
1152 { "%NFtzcntS", { Gv, Ev }, PREFIX_NP_OR_DATA },
1153 { "%NFlzcntS", { Gv, Ev }, PREFIX_NP_OR_DATA },
1154 { REG_TABLE (REG_EVEX_MAP4_F6) },
1155 { REG_TABLE (REG_EVEX_MAP4_F7) },
1156 /* F8 */
1157 { PREFIX_TABLE (PREFIX_EVEX_MAP4_F8) },
1158 { "movdiri", { Mdq, Gdq }, NO_PREFIX },
1159 { Bad_Opcode },
1160 { Bad_Opcode },
1161 { PREFIX_TABLE (PREFIX_0F38FC) },
1162 { Bad_Opcode },
1163 { REG_TABLE (REG_EVEX_MAP4_FE) },
1164 { REG_TABLE (REG_EVEX_MAP4_FF) },
1166 /* EVEX_MAP5_ */
1168 /* 00 */
1169 { Bad_Opcode },
1170 { Bad_Opcode },
1171 { Bad_Opcode },
1172 { Bad_Opcode },
1173 { Bad_Opcode },
1174 { Bad_Opcode },
1175 { Bad_Opcode },
1176 { Bad_Opcode },
1177 /* 08 */
1178 { Bad_Opcode },
1179 { Bad_Opcode },
1180 { Bad_Opcode },
1181 { Bad_Opcode },
1182 { Bad_Opcode },
1183 { Bad_Opcode },
1184 { Bad_Opcode },
1185 { Bad_Opcode },
1186 /* 10 */
1187 { PREFIX_TABLE (PREFIX_EVEX_MAP5_10) },
1188 { PREFIX_TABLE (PREFIX_EVEX_MAP5_11) },
1189 { Bad_Opcode },
1190 { Bad_Opcode },
1191 { Bad_Opcode },
1192 { Bad_Opcode },
1193 { Bad_Opcode },
1194 { Bad_Opcode },
1195 /* 18 */
1196 { PREFIX_TABLE (PREFIX_EVEX_MAP5_18) },
1197 { Bad_Opcode },
1198 { Bad_Opcode },
1199 { PREFIX_TABLE (PREFIX_EVEX_MAP5_1B) },
1200 { Bad_Opcode },
1201 { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
1202 { PREFIX_TABLE (PREFIX_EVEX_MAP5_1E) },
1203 { Bad_Opcode },
1204 /* 20 */
1205 { Bad_Opcode },
1206 { Bad_Opcode },
1207 { Bad_Opcode },
1208 { Bad_Opcode },
1209 { Bad_Opcode },
1210 { Bad_Opcode },
1211 { Bad_Opcode },
1212 { Bad_Opcode },
1213 /* 28 */
1214 { Bad_Opcode },
1215 { Bad_Opcode },
1216 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2A) },
1217 { Bad_Opcode },
1218 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2C) },
1219 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2D) },
1220 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2E) },
1221 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2F) },
1222 /* 30 */
1223 { Bad_Opcode },
1224 { Bad_Opcode },
1225 { Bad_Opcode },
1226 { Bad_Opcode },
1227 { Bad_Opcode },
1228 { Bad_Opcode },
1229 { Bad_Opcode },
1230 { Bad_Opcode },
1231 /* 38 */
1232 { Bad_Opcode },
1233 { Bad_Opcode },
1234 { Bad_Opcode },
1235 { Bad_Opcode },
1236 { Bad_Opcode },
1237 { Bad_Opcode },
1238 { Bad_Opcode },
1239 { Bad_Opcode },
1240 /* 40 */
1241 { Bad_Opcode },
1242 { Bad_Opcode },
1243 { Bad_Opcode },
1244 { Bad_Opcode },
1245 { Bad_Opcode },
1246 { Bad_Opcode },
1247 { Bad_Opcode },
1248 { Bad_Opcode },
1249 /* 48 */
1250 { Bad_Opcode },
1251 { Bad_Opcode },
1252 { Bad_Opcode },
1253 { Bad_Opcode },
1254 { Bad_Opcode },
1255 { Bad_Opcode },
1256 { Bad_Opcode },
1257 { Bad_Opcode },
1258 /* 50 */
1259 { Bad_Opcode },
1260 { PREFIX_TABLE (PREFIX_EVEX_MAP5_51) },
1261 { Bad_Opcode },
1262 { Bad_Opcode },
1263 { Bad_Opcode },
1264 { Bad_Opcode },
1265 { Bad_Opcode },
1266 { Bad_Opcode },
1267 /* 58 */
1268 { PREFIX_TABLE (PREFIX_EVEX_MAP5_58) },
1269 { PREFIX_TABLE (PREFIX_EVEX_MAP5_59) },
1270 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5A) },
1271 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5B) },
1272 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5C) },
1273 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5D) },
1274 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5E) },
1275 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5F) },
1276 /* 60 */
1277 { Bad_Opcode },
1278 { Bad_Opcode },
1279 { Bad_Opcode },
1280 { Bad_Opcode },
1281 { Bad_Opcode },
1282 { Bad_Opcode },
1283 { Bad_Opcode },
1284 { Bad_Opcode },
1285 /* 68 */
1286 { PREFIX_TABLE (PREFIX_EVEX_MAP5_68) },
1287 { PREFIX_TABLE (PREFIX_EVEX_MAP5_69) },
1288 { PREFIX_TABLE (PREFIX_EVEX_MAP5_6A) },
1289 { PREFIX_TABLE (PREFIX_EVEX_MAP5_6B) },
1290 { PREFIX_TABLE (PREFIX_EVEX_MAP5_6C) },
1291 { PREFIX_TABLE (PREFIX_EVEX_MAP5_6D) },
1292 { "vmovwY", { XMScalar, Edw }, PREFIX_DATA },
1293 { Bad_Opcode },
1294 /* 70 */
1295 { Bad_Opcode },
1296 { Bad_Opcode },
1297 { Bad_Opcode },
1298 { Bad_Opcode },
1299 { PREFIX_TABLE (PREFIX_EVEX_MAP5_74) },
1300 { Bad_Opcode },
1301 { Bad_Opcode },
1302 { Bad_Opcode },
1303 /* 78 */
1304 { PREFIX_TABLE (PREFIX_EVEX_MAP5_78) },
1305 { PREFIX_TABLE (PREFIX_EVEX_MAP5_79) },
1306 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7A) },
1307 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7B) },
1308 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7C) },
1309 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7D) },
1310 { "vmovw", { Edw, XMScalar }, PREFIX_DATA },
1311 { Bad_Opcode },
1312 /* 80 */
1313 { Bad_Opcode },
1314 { Bad_Opcode },
1315 { Bad_Opcode },
1316 { Bad_Opcode },
1317 { Bad_Opcode },
1318 { Bad_Opcode },
1319 { Bad_Opcode },
1320 { Bad_Opcode },
1321 /* 88 */
1322 { Bad_Opcode },
1323 { Bad_Opcode },
1324 { Bad_Opcode },
1325 { Bad_Opcode },
1326 { Bad_Opcode },
1327 { Bad_Opcode },
1328 { Bad_Opcode },
1329 { Bad_Opcode },
1330 /* 90 */
1331 { Bad_Opcode },
1332 { Bad_Opcode },
1333 { Bad_Opcode },
1334 { Bad_Opcode },
1335 { Bad_Opcode },
1336 { Bad_Opcode },
1337 { Bad_Opcode },
1338 { Bad_Opcode },
1339 /* 98 */
1340 { Bad_Opcode },
1341 { Bad_Opcode },
1342 { Bad_Opcode },
1343 { Bad_Opcode },
1344 { Bad_Opcode },
1345 { Bad_Opcode },
1346 { Bad_Opcode },
1347 { Bad_Opcode },
1348 /* A0 */
1349 { Bad_Opcode },
1350 { Bad_Opcode },
1351 { Bad_Opcode },
1352 { Bad_Opcode },
1353 { Bad_Opcode },
1354 { Bad_Opcode },
1355 { Bad_Opcode },
1356 { Bad_Opcode },
1357 /* A8 */
1358 { Bad_Opcode },
1359 { Bad_Opcode },
1360 { Bad_Opcode },
1361 { Bad_Opcode },
1362 { Bad_Opcode },
1363 { Bad_Opcode },
1364 { Bad_Opcode },
1365 { Bad_Opcode },
1366 /* B0 */
1367 { Bad_Opcode },
1368 { Bad_Opcode },
1369 { Bad_Opcode },
1370 { Bad_Opcode },
1371 { Bad_Opcode },
1372 { Bad_Opcode },
1373 { Bad_Opcode },
1374 { Bad_Opcode },
1375 /* B8 */
1376 { Bad_Opcode },
1377 { Bad_Opcode },
1378 { Bad_Opcode },
1379 { Bad_Opcode },
1380 { Bad_Opcode },
1381 { Bad_Opcode },
1382 { Bad_Opcode },
1383 { Bad_Opcode },
1384 /* C0 */
1385 { Bad_Opcode },
1386 { Bad_Opcode },
1387 { Bad_Opcode },
1388 { Bad_Opcode },
1389 { Bad_Opcode },
1390 { Bad_Opcode },
1391 { Bad_Opcode },
1392 { Bad_Opcode },
1393 /* C8 */
1394 { Bad_Opcode },
1395 { Bad_Opcode },
1396 { Bad_Opcode },
1397 { Bad_Opcode },
1398 { Bad_Opcode },
1399 { Bad_Opcode },
1400 { Bad_Opcode },
1401 { Bad_Opcode },
1402 /* D0 */
1403 { Bad_Opcode },
1404 { Bad_Opcode },
1405 { Bad_Opcode },
1406 { Bad_Opcode },
1407 { Bad_Opcode },
1408 { Bad_Opcode },
1409 { Bad_Opcode },
1410 { Bad_Opcode },
1411 /* D8 */
1412 { Bad_Opcode },
1413 { Bad_Opcode },
1414 { Bad_Opcode },
1415 { Bad_Opcode },
1416 { Bad_Opcode },
1417 { Bad_Opcode },
1418 { Bad_Opcode },
1419 { Bad_Opcode },
1420 /* E0 */
1421 { Bad_Opcode },
1422 { Bad_Opcode },
1423 { Bad_Opcode },
1424 { Bad_Opcode },
1425 { Bad_Opcode },
1426 { Bad_Opcode },
1427 { Bad_Opcode },
1428 { Bad_Opcode },
1429 /* E8 */
1430 { Bad_Opcode },
1431 { Bad_Opcode },
1432 { Bad_Opcode },
1433 { Bad_Opcode },
1434 { Bad_Opcode },
1435 { Bad_Opcode },
1436 { Bad_Opcode },
1437 { Bad_Opcode },
1438 /* F0 */
1439 { Bad_Opcode },
1440 { Bad_Opcode },
1441 { Bad_Opcode },
1442 { Bad_Opcode },
1443 { Bad_Opcode },
1444 { Bad_Opcode },
1445 { Bad_Opcode },
1446 { Bad_Opcode },
1447 /* F8 */
1448 { Bad_Opcode },
1449 { Bad_Opcode },
1450 { Bad_Opcode },
1451 { Bad_Opcode },
1452 { Bad_Opcode },
1453 { Bad_Opcode },
1454 { Bad_Opcode },
1455 { Bad_Opcode },
1457 /* EVEX_MAP6_ */
1459 /* 00 */
1460 { Bad_Opcode },
1461 { Bad_Opcode },
1462 { Bad_Opcode },
1463 { Bad_Opcode },
1464 { Bad_Opcode },
1465 { Bad_Opcode },
1466 { Bad_Opcode },
1467 { Bad_Opcode },
1468 /* 08 */
1469 { Bad_Opcode },
1470 { Bad_Opcode },
1471 { Bad_Opcode },
1472 { Bad_Opcode },
1473 { Bad_Opcode },
1474 { Bad_Opcode },
1475 { Bad_Opcode },
1476 { Bad_Opcode },
1477 /* 10 */
1478 { Bad_Opcode },
1479 { Bad_Opcode },
1480 { Bad_Opcode },
1481 { PREFIX_TABLE (PREFIX_EVEX_MAP6_13) },
1482 { Bad_Opcode },
1483 { Bad_Opcode },
1484 { Bad_Opcode },
1485 { Bad_Opcode },
1486 /* 18 */
1487 { Bad_Opcode },
1488 { Bad_Opcode },
1489 { Bad_Opcode },
1490 { Bad_Opcode },
1491 { Bad_Opcode },
1492 { Bad_Opcode },
1493 { Bad_Opcode },
1494 { Bad_Opcode },
1495 /* 20 */
1496 { Bad_Opcode },
1497 { Bad_Opcode },
1498 { Bad_Opcode },
1499 { Bad_Opcode },
1500 { Bad_Opcode },
1501 { Bad_Opcode },
1502 { Bad_Opcode },
1503 { Bad_Opcode },
1504 /* 28 */
1505 { Bad_Opcode },
1506 { Bad_Opcode },
1507 { Bad_Opcode },
1508 { Bad_Opcode },
1509 { PREFIX_TABLE (PREFIX_EVEX_MAP6_2C) },
1510 { "vscalefs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1511 { Bad_Opcode },
1512 { Bad_Opcode },
1513 /* 30 */
1514 { Bad_Opcode },
1515 { Bad_Opcode },
1516 { Bad_Opcode },
1517 { Bad_Opcode },
1518 { Bad_Opcode },
1519 { Bad_Opcode },
1520 { Bad_Opcode },
1521 { Bad_Opcode },
1522 /* 38 */
1523 { Bad_Opcode },
1524 { Bad_Opcode },
1525 { Bad_Opcode },
1526 { Bad_Opcode },
1527 { Bad_Opcode },
1528 { Bad_Opcode },
1529 { Bad_Opcode },
1530 { Bad_Opcode },
1531 /* 40 */
1532 { Bad_Opcode },
1533 { Bad_Opcode },
1534 { PREFIX_TABLE (PREFIX_EVEX_MAP6_42) },
1535 { "vgetexps%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, PREFIX_DATA },
1536 { Bad_Opcode },
1537 { Bad_Opcode },
1538 { Bad_Opcode },
1539 { Bad_Opcode },
1540 /* 48 */
1541 { Bad_Opcode },
1542 { Bad_Opcode },
1543 { Bad_Opcode },
1544 { Bad_Opcode },
1545 { PREFIX_TABLE (PREFIX_EVEX_MAP6_4C) },
1546 { "vrcps%XH", { XMScalar, VexScalar, EXw }, PREFIX_DATA },
1547 { PREFIX_TABLE (PREFIX_EVEX_MAP6_4E) },
1548 { "vrsqrts%XH", { XMScalar, VexScalar, EXw }, PREFIX_DATA },
1549 /* 50 */
1550 { Bad_Opcode },
1551 { Bad_Opcode },
1552 { Bad_Opcode },
1553 { Bad_Opcode },
1554 { Bad_Opcode },
1555 { Bad_Opcode },
1556 { PREFIX_TABLE (PREFIX_EVEX_MAP6_56) },
1557 { PREFIX_TABLE (PREFIX_EVEX_MAP6_57) },
1558 /* 58 */
1559 { Bad_Opcode },
1560 { Bad_Opcode },
1561 { Bad_Opcode },
1562 { Bad_Opcode },
1563 { Bad_Opcode },
1564 { Bad_Opcode },
1565 { Bad_Opcode },
1566 { Bad_Opcode },
1567 /* 60 */
1568 { Bad_Opcode },
1569 { Bad_Opcode },
1570 { Bad_Opcode },
1571 { Bad_Opcode },
1572 { Bad_Opcode },
1573 { Bad_Opcode },
1574 { Bad_Opcode },
1575 { Bad_Opcode },
1576 /* 68 */
1577 { Bad_Opcode },
1578 { Bad_Opcode },
1579 { Bad_Opcode },
1580 { Bad_Opcode },
1581 { Bad_Opcode },
1582 { Bad_Opcode },
1583 { Bad_Opcode },
1584 { Bad_Opcode },
1585 /* 70 */
1586 { Bad_Opcode },
1587 { Bad_Opcode },
1588 { Bad_Opcode },
1589 { Bad_Opcode },
1590 { Bad_Opcode },
1591 { Bad_Opcode },
1592 { Bad_Opcode },
1593 { Bad_Opcode },
1594 /* 78 */
1595 { Bad_Opcode },
1596 { Bad_Opcode },
1597 { Bad_Opcode },
1598 { Bad_Opcode },
1599 { Bad_Opcode },
1600 { Bad_Opcode },
1601 { Bad_Opcode },
1602 { Bad_Opcode },
1603 /* 80 */
1604 { Bad_Opcode },
1605 { Bad_Opcode },
1606 { Bad_Opcode },
1607 { Bad_Opcode },
1608 { Bad_Opcode },
1609 { Bad_Opcode },
1610 { Bad_Opcode },
1611 { Bad_Opcode },
1612 /* 88 */
1613 { Bad_Opcode },
1614 { Bad_Opcode },
1615 { Bad_Opcode },
1616 { Bad_Opcode },
1617 { Bad_Opcode },
1618 { Bad_Opcode },
1619 { Bad_Opcode },
1620 { Bad_Opcode },
1621 /* 90 */
1622 { Bad_Opcode },
1623 { Bad_Opcode },
1624 { Bad_Opcode },
1625 { Bad_Opcode },
1626 { Bad_Opcode },
1627 { Bad_Opcode },
1628 { "vfmaddsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1629 { "vfmsubadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1630 /* 98 */
1631 { PREFIX_TABLE (PREFIX_EVEX_MAP6_98) },
1632 { "vfmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1633 { PREFIX_TABLE (PREFIX_EVEX_MAP6_9A) },
1634 { "vfmsub132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1635 { PREFIX_TABLE (PREFIX_EVEX_MAP6_9C) },
1636 { "vfnmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1637 { PREFIX_TABLE (PREFIX_EVEX_MAP6_9E) },
1638 { "vfnmsub132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1639 /* A0 */
1640 { Bad_Opcode },
1641 { Bad_Opcode },
1642 { Bad_Opcode },
1643 { Bad_Opcode },
1644 { Bad_Opcode },
1645 { Bad_Opcode },
1646 { "vfmaddsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1647 { "vfmsubadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1648 /* A8 */
1649 { PREFIX_TABLE (PREFIX_EVEX_MAP6_A8) },
1650 { "vfmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1651 { PREFIX_TABLE (PREFIX_EVEX_MAP6_AA) },
1652 { "vfmsub213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1653 { PREFIX_TABLE (PREFIX_EVEX_MAP6_AC) },
1654 { "vfnmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1655 { PREFIX_TABLE (PREFIX_EVEX_MAP6_AE) },
1656 { "vfnmsub213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1657 /* B0 */
1658 { Bad_Opcode },
1659 { Bad_Opcode },
1660 { Bad_Opcode },
1661 { Bad_Opcode },
1662 { Bad_Opcode },
1663 { Bad_Opcode },
1664 { "vfmaddsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1665 { "vfmsubadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1666 /* B8 */
1667 { PREFIX_TABLE (PREFIX_EVEX_MAP6_B8) },
1668 { "vfmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1669 { PREFIX_TABLE (PREFIX_EVEX_MAP6_BA) },
1670 { "vfmsub231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1671 { PREFIX_TABLE (PREFIX_EVEX_MAP6_BC) },
1672 { "vfnmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1673 { PREFIX_TABLE (PREFIX_EVEX_MAP6_BE) },
1674 { "vfnmsub231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1675 /* C0 */
1676 { Bad_Opcode },
1677 { Bad_Opcode },
1678 { Bad_Opcode },
1679 { Bad_Opcode },
1680 { Bad_Opcode },
1681 { Bad_Opcode },
1682 { Bad_Opcode },
1683 { Bad_Opcode },
1684 /* C8 */
1685 { Bad_Opcode },
1686 { Bad_Opcode },
1687 { Bad_Opcode },
1688 { Bad_Opcode },
1689 { Bad_Opcode },
1690 { Bad_Opcode },
1691 { Bad_Opcode },
1692 { Bad_Opcode },
1693 /* D0 */
1694 { Bad_Opcode },
1695 { Bad_Opcode },
1696 { Bad_Opcode },
1697 { Bad_Opcode },
1698 { Bad_Opcode },
1699 { Bad_Opcode },
1700 { PREFIX_TABLE (PREFIX_EVEX_MAP6_D6) },
1701 { PREFIX_TABLE (PREFIX_EVEX_MAP6_D7) },
1702 /* D8 */
1703 { Bad_Opcode },
1704 { Bad_Opcode },
1705 { Bad_Opcode },
1706 { Bad_Opcode },
1707 { Bad_Opcode },
1708 { Bad_Opcode },
1709 { Bad_Opcode },
1710 { Bad_Opcode },
1711 /* E0 */
1712 { Bad_Opcode },
1713 { Bad_Opcode },
1714 { Bad_Opcode },
1715 { Bad_Opcode },
1716 { Bad_Opcode },
1717 { Bad_Opcode },
1718 { Bad_Opcode },
1719 { Bad_Opcode },
1720 /* E8 */
1721 { Bad_Opcode },
1722 { Bad_Opcode },
1723 { Bad_Opcode },
1724 { Bad_Opcode },
1725 { Bad_Opcode },
1726 { Bad_Opcode },
1727 { Bad_Opcode },
1728 { Bad_Opcode },
1729 /* F0 */
1730 { Bad_Opcode },
1731 { Bad_Opcode },
1732 { Bad_Opcode },
1733 { Bad_Opcode },
1734 { Bad_Opcode },
1735 { Bad_Opcode },
1736 { Bad_Opcode },
1737 { Bad_Opcode },
1738 /* F8 */
1739 { Bad_Opcode },
1740 { Bad_Opcode },
1741 { Bad_Opcode },
1742 { Bad_Opcode },
1743 { Bad_Opcode },
1744 { Bad_Opcode },
1745 { Bad_Opcode },
1746 { Bad_Opcode },