Automatic date update in version.in
[binutils-gdb.git] / opcodes / i386-dis-evex.h
blob176529a475c77c359aef0183d2cdc9d32473365c
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_VEX_0F10) },
24 { PREFIX_TABLE (PREFIX_VEX_0F11) },
25 { PREFIX_TABLE (PREFIX_VEX_0F12) },
26 { MOD_TABLE (MOD_VEX_0F13) },
27 { "vunpcklpX", { XM, Vex, EXx }, PREFIX_OPCODE },
28 { "vunpckhpX", { XM, Vex, EXx }, PREFIX_OPCODE },
29 { PREFIX_TABLE (PREFIX_VEX_0F16) },
30 { MOD_TABLE (MOD_VEX_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 { "vmovapX", { XM, EXx }, PREFIX_OPCODE },
51 { "vmovapX", { EXxS, XM }, PREFIX_OPCODE },
52 { PREFIX_TABLE (PREFIX_VEX_0F2A) },
53 { MOD_TABLE (MOD_VEX_0F2B) },
54 { PREFIX_TABLE (PREFIX_VEX_0F2C) },
55 { PREFIX_TABLE (PREFIX_VEX_0F2D) },
56 { PREFIX_TABLE (PREFIX_VEX_0F2E) },
57 { PREFIX_TABLE (PREFIX_VEX_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_VEX_0F51) },
97 { Bad_Opcode },
98 { Bad_Opcode },
99 { "vandpX", { XM, Vex, EXx }, PREFIX_OPCODE },
100 { "vandnpX", { XM, Vex, EXx }, PREFIX_OPCODE },
101 { "vorpX", { XM, Vex, EXx }, PREFIX_OPCODE },
102 { "vxorpX", { XM, Vex, EXx }, PREFIX_OPCODE },
103 /* 58 */
104 { PREFIX_TABLE (PREFIX_VEX_0F58) },
105 { PREFIX_TABLE (PREFIX_VEX_0F59) },
106 { PREFIX_TABLE (PREFIX_VEX_0F5A) },
107 { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
108 { PREFIX_TABLE (PREFIX_VEX_0F5C) },
109 { PREFIX_TABLE (PREFIX_VEX_0F5D) },
110 { PREFIX_TABLE (PREFIX_VEX_0F5E) },
111 { PREFIX_TABLE (PREFIX_VEX_0F5F) },
112 /* 60 */
113 { "vpunpcklbw", { XM, Vex, EXx }, PREFIX_DATA },
114 { "vpunpcklwd", { XM, Vex, EXx }, PREFIX_DATA },
115 { VEX_W_TABLE (EVEX_W_0F62) },
116 { "vpacksswb", { 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 { "vpackuswb", { XM, Vex, EXx }, PREFIX_DATA },
121 /* 68 */
122 { "vpunpckhbw", { XM, Vex, EXx }, PREFIX_DATA },
123 { "vpunpckhwd", { 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 { Bad_Opcode },
168 { Bad_Opcode },
169 { Bad_Opcode },
170 { Bad_Opcode },
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 { VEX_LEN_TABLE (VEX_LEN_0FC5) },
227 { "vshufpX", { 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 { "vpsrlw", { 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 { "vpmullw", { XM, Vex, EXx }, PREFIX_DATA },
245 { VEX_W_TABLE (EVEX_W_0FD6) },
246 { Bad_Opcode },
247 /* D8 */
248 { "vpsubusb", { XM, Vex, EXx }, PREFIX_DATA },
249 { "vpsubusw", { XM, Vex, EXx }, PREFIX_DATA },
250 { "vpminub", { XM, Vex, EXx }, PREFIX_DATA },
251 { "vpand%DQ", { XM, Vex, EXx }, PREFIX_DATA },
252 { "vpaddusb", { XM, Vex, EXx }, PREFIX_DATA },
253 { "vpaddusw", { XM, Vex, EXx }, PREFIX_DATA },
254 { "vpmaxub", { XM, Vex, EXx }, PREFIX_DATA },
255 { "vpandn%DQ", { XM, Vex, EXx }, PREFIX_DATA },
256 /* E0 */
257 { "vpavgb", { XM, Vex, EXx }, PREFIX_DATA },
258 { "vpsraw", { XM, Vex, EXxmm }, PREFIX_DATA },
259 { "vpsra%DQ", { XM, Vex, EXxmm }, PREFIX_DATA },
260 { "vpavgw", { XM, Vex, EXx }, PREFIX_DATA },
261 { "vpmulhuw", { XM, Vex, EXx }, PREFIX_DATA },
262 { "vpmulhw", { XM, Vex, EXx }, PREFIX_DATA },
263 { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
264 { VEX_W_TABLE (EVEX_W_0FE7) },
265 /* E8 */
266 { "vpsubsb", { XM, Vex, EXx }, PREFIX_DATA },
267 { "vpsubsw", { XM, Vex, EXx }, PREFIX_DATA },
268 { "vpminsw", { XM, Vex, EXx }, PREFIX_DATA },
269 { "vpor%DQ", { XM, Vex, EXx }, PREFIX_DATA },
270 { "vpaddsb", { XM, Vex, EXx }, PREFIX_DATA },
271 { "vpaddsw", { XM, Vex, EXx }, PREFIX_DATA },
272 { "vpmaxsw", { XM, Vex, EXx }, PREFIX_DATA },
273 { "vpxor%DQ", { XM, Vex, EXx }, PREFIX_DATA },
274 /* F0 */
275 { Bad_Opcode },
276 { "vpsllw", { 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 { "vpmaddwd", { XM, Vex, EXx }, PREFIX_DATA },
281 { "vpsadbw", { XM, Vex, EXx }, PREFIX_DATA },
282 { Bad_Opcode },
283 /* F8 */
284 { "vpsubb", { XM, Vex, EXx }, PREFIX_DATA },
285 { "vpsubw", { XM, Vex, EXx }, PREFIX_DATA },
286 { VEX_W_TABLE (EVEX_W_0FFA) },
287 { VEX_W_TABLE (EVEX_W_0FFB) },
288 { "vpaddb", { XM, Vex, EXx }, PREFIX_DATA },
289 { "vpaddw", { XM, Vex, EXx }, PREFIX_DATA },
290 { VEX_W_TABLE (EVEX_W_0FFE) },
291 { Bad_Opcode },
293 /* EVEX_0F38 */
295 /* 00 */
296 { "vpshufb", { XM, Vex, EXx }, PREFIX_DATA },
297 { Bad_Opcode },
298 { Bad_Opcode },
299 { Bad_Opcode },
300 { "vpmaddubsw", { 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 { "vpmulhrsw", { XM, Vex, EXx }, PREFIX_DATA },
309 { VEX_W_TABLE (VEX_W_0F380C) },
310 { "vpermilp%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 { MOD_TABLE (MOD_EVEX_0F381A) },
326 { MOD_TABLE (MOD_EVEX_0F381B) },
327 { "vpabsb", { XM, EXx }, PREFIX_DATA },
328 { "vpabsw", { 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 { "vpminu%DQ", { XM, Vex, EXx }, PREFIX_DATA },
363 { "vpmaxsb", { XM, Vex, EXx }, PREFIX_DATA },
364 { "vpmaxs%DQ", { XM, Vex, EXx }, PREFIX_DATA },
365 { "vpmaxuw", { XM, Vex, EXx }, PREFIX_DATA },
366 { "vpmaxu%DQ", { XM, Vex, EXx }, PREFIX_DATA },
367 /* 40 */
368 { "vpmull%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 { Bad_Opcode },
379 { Bad_Opcode },
380 { Bad_Opcode },
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 { "vpdpbusd", { XM, Vex, EXx }, PREFIX_DATA },
387 { "vpdpbusds", { XM, Vex, EXx }, PREFIX_DATA },
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 { MOD_TABLE (MOD_EVEX_0F385A) },
398 { MOD_TABLE (MOD_EVEX_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 { Bad_Opcode },
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 { Bad_Opcode },
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 { MOD_TABLE (MOD_EVEX_0F387C) },
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 { "vfmaddsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
465 { "vfmsubadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
466 /* 98 */
467 { "vfmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
468 { "vfmadd132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
469 { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
470 { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
471 { "vfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
472 { "vfnmadd132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
473 { "vfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
474 { "vfnmsub132s%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 { "vfmaddsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
483 { "vfmsubadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
484 /* A8 */
485 { "vfmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
486 { "vfmadd213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
487 { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
488 { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
489 { "vfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
490 { "vfnmadd213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
491 { "vfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
492 { "vfnmsub213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
493 /* B0 */
494 { Bad_Opcode },
495 { Bad_Opcode },
496 { Bad_Opcode },
497 { Bad_Opcode },
498 { "vpmadd52luq", { XM, Vex, EXx }, PREFIX_DATA },
499 { "vpmadd52huq", { XM, Vex, EXx }, PREFIX_DATA },
500 { "vfmaddsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
501 { "vfmsubadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
502 /* B8 */
503 { "vfmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
504 { "vfmadd231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
505 { "vfmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
506 { "vfmsub231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
507 { "vfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
508 { "vfnmadd231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
509 { "vfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
510 { "vfnmsub231s%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 { MOD_TABLE (MOD_EVEX_0F38C6) },
519 { MOD_TABLE (MOD_EVEX_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 { Bad_Opcode },
533 { Bad_Opcode },
534 { Bad_Opcode },
535 { Bad_Opcode },
536 { Bad_Opcode },
537 { Bad_Opcode },
538 /* D8 */
539 { Bad_Opcode },
540 { Bad_Opcode },
541 { Bad_Opcode },
542 { Bad_Opcode },
543 { "vaesenc", { XM, Vex, EXx }, PREFIX_DATA },
544 { "vaesenclast", { XM, Vex, EXx }, PREFIX_DATA },
545 { "vaesdec", { XM, Vex, EXx }, PREFIX_DATA },
546 { "vaesdeclast", { XM, Vex, EXx }, PREFIX_DATA },
547 /* E0 */
548 { Bad_Opcode },
549 { Bad_Opcode },
550 { Bad_Opcode },
551 { Bad_Opcode },
552 { Bad_Opcode },
553 { Bad_Opcode },
554 { Bad_Opcode },
555 { Bad_Opcode },
556 /* E8 */
557 { Bad_Opcode },
558 { Bad_Opcode },
559 { Bad_Opcode },
560 { Bad_Opcode },
561 { Bad_Opcode },
562 { Bad_Opcode },
563 { Bad_Opcode },
564 { Bad_Opcode },
565 /* F0 */
566 { Bad_Opcode },
567 { Bad_Opcode },
568 { Bad_Opcode },
569 { Bad_Opcode },
570 { Bad_Opcode },
571 { Bad_Opcode },
572 { Bad_Opcode },
573 { Bad_Opcode },
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 { "vpermilp%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 { "vpalignr", { 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 { "vpclmulqdq", { 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 { Bad_Opcode },
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_MAP5_ */
877 /* 00 */
878 { Bad_Opcode },
879 { Bad_Opcode },
880 { Bad_Opcode },
881 { Bad_Opcode },
882 { Bad_Opcode },
883 { Bad_Opcode },
884 { Bad_Opcode },
885 { Bad_Opcode },
886 /* 08 */
887 { Bad_Opcode },
888 { Bad_Opcode },
889 { Bad_Opcode },
890 { Bad_Opcode },
891 { Bad_Opcode },
892 { Bad_Opcode },
893 { Bad_Opcode },
894 { Bad_Opcode },
895 /* 10 */
896 { PREFIX_TABLE (PREFIX_EVEX_MAP5_10) },
897 { PREFIX_TABLE (PREFIX_EVEX_MAP5_11) },
898 { Bad_Opcode },
899 { Bad_Opcode },
900 { Bad_Opcode },
901 { Bad_Opcode },
902 { Bad_Opcode },
903 { Bad_Opcode },
904 /* 18 */
905 { Bad_Opcode },
906 { Bad_Opcode },
907 { Bad_Opcode },
908 { Bad_Opcode },
909 { Bad_Opcode },
910 { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
911 { Bad_Opcode },
912 { Bad_Opcode },
913 /* 20 */
914 { Bad_Opcode },
915 { Bad_Opcode },
916 { Bad_Opcode },
917 { Bad_Opcode },
918 { Bad_Opcode },
919 { Bad_Opcode },
920 { Bad_Opcode },
921 { Bad_Opcode },
922 /* 28 */
923 { Bad_Opcode },
924 { Bad_Opcode },
925 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2A) },
926 { Bad_Opcode },
927 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2C) },
928 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2D) },
929 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2E) },
930 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2F) },
931 /* 30 */
932 { Bad_Opcode },
933 { Bad_Opcode },
934 { Bad_Opcode },
935 { Bad_Opcode },
936 { Bad_Opcode },
937 { Bad_Opcode },
938 { Bad_Opcode },
939 { Bad_Opcode },
940 /* 38 */
941 { Bad_Opcode },
942 { Bad_Opcode },
943 { Bad_Opcode },
944 { Bad_Opcode },
945 { Bad_Opcode },
946 { Bad_Opcode },
947 { Bad_Opcode },
948 { Bad_Opcode },
949 /* 40 */
950 { Bad_Opcode },
951 { Bad_Opcode },
952 { Bad_Opcode },
953 { Bad_Opcode },
954 { Bad_Opcode },
955 { Bad_Opcode },
956 { Bad_Opcode },
957 { Bad_Opcode },
958 /* 48 */
959 { Bad_Opcode },
960 { Bad_Opcode },
961 { Bad_Opcode },
962 { Bad_Opcode },
963 { Bad_Opcode },
964 { Bad_Opcode },
965 { Bad_Opcode },
966 { Bad_Opcode },
967 /* 50 */
968 { Bad_Opcode },
969 { PREFIX_TABLE (PREFIX_EVEX_MAP5_51) },
970 { Bad_Opcode },
971 { Bad_Opcode },
972 { Bad_Opcode },
973 { Bad_Opcode },
974 { Bad_Opcode },
975 { Bad_Opcode },
976 /* 58 */
977 { PREFIX_TABLE (PREFIX_EVEX_MAP5_58) },
978 { PREFIX_TABLE (PREFIX_EVEX_MAP5_59) },
979 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5A) },
980 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5B) },
981 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5C) },
982 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5D) },
983 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5E) },
984 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5F) },
985 /* 60 */
986 { Bad_Opcode },
987 { Bad_Opcode },
988 { Bad_Opcode },
989 { Bad_Opcode },
990 { Bad_Opcode },
991 { Bad_Opcode },
992 { Bad_Opcode },
993 { Bad_Opcode },
994 /* 68 */
995 { Bad_Opcode },
996 { Bad_Opcode },
997 { Bad_Opcode },
998 { Bad_Opcode },
999 { Bad_Opcode },
1000 { Bad_Opcode },
1001 { "vmovw", { XMScalar, Edw }, PREFIX_DATA },
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 { PREFIX_TABLE (PREFIX_EVEX_MAP5_78) },
1014 { PREFIX_TABLE (PREFIX_EVEX_MAP5_79) },
1015 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7A) },
1016 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7B) },
1017 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7C) },
1018 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7D) },
1019 { "vmovw", { Edw, XMScalar }, PREFIX_DATA },
1020 { Bad_Opcode },
1021 /* 80 */
1022 { Bad_Opcode },
1023 { Bad_Opcode },
1024 { Bad_Opcode },
1025 { Bad_Opcode },
1026 { Bad_Opcode },
1027 { Bad_Opcode },
1028 { Bad_Opcode },
1029 { Bad_Opcode },
1030 /* 88 */
1031 { Bad_Opcode },
1032 { Bad_Opcode },
1033 { Bad_Opcode },
1034 { Bad_Opcode },
1035 { Bad_Opcode },
1036 { Bad_Opcode },
1037 { Bad_Opcode },
1038 { Bad_Opcode },
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 { Bad_Opcode },
1064 { Bad_Opcode },
1065 { Bad_Opcode },
1066 /* A8 */
1067 { Bad_Opcode },
1068 { Bad_Opcode },
1069 { Bad_Opcode },
1070 { Bad_Opcode },
1071 { Bad_Opcode },
1072 { Bad_Opcode },
1073 { Bad_Opcode },
1074 { Bad_Opcode },
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 { Bad_Opcode },
1095 { Bad_Opcode },
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 { Bad_Opcode },
1113 { Bad_Opcode },
1114 { Bad_Opcode },
1115 { Bad_Opcode },
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 { Bad_Opcode },
1149 { Bad_Opcode },
1150 { Bad_Opcode },
1151 { Bad_Opcode },
1152 { Bad_Opcode },
1153 { Bad_Opcode },
1154 { Bad_Opcode },
1155 { Bad_Opcode },
1156 /* F8 */
1157 { Bad_Opcode },
1158 { Bad_Opcode },
1159 { Bad_Opcode },
1160 { Bad_Opcode },
1161 { Bad_Opcode },
1162 { Bad_Opcode },
1163 { Bad_Opcode },
1164 { Bad_Opcode },
1166 /* EVEX_MAP6_ */
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 { Bad_Opcode },
1188 { Bad_Opcode },
1189 { Bad_Opcode },
1190 { PREFIX_TABLE (PREFIX_EVEX_MAP6_13) },
1191 { Bad_Opcode },
1192 { Bad_Opcode },
1193 { Bad_Opcode },
1194 { Bad_Opcode },
1195 /* 18 */
1196 { Bad_Opcode },
1197 { Bad_Opcode },
1198 { Bad_Opcode },
1199 { Bad_Opcode },
1200 { Bad_Opcode },
1201 { Bad_Opcode },
1202 { Bad_Opcode },
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 { Bad_Opcode },
1217 { Bad_Opcode },
1218 { "vscalefp%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1219 { "vscalefs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1220 { Bad_Opcode },
1221 { Bad_Opcode },
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 { "vgetexpp%XH", { XM, EXxh, EXxEVexS }, PREFIX_DATA },
1244 { "vgetexps%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, PREFIX_DATA },
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 { "vrcpp%XH", { XM, EXxh }, PREFIX_DATA },
1255 { "vrcps%XH", { XMScalar, VexScalar, EXw }, PREFIX_DATA },
1256 { "vrsqrtp%XH", { XM, EXxh }, PREFIX_DATA },
1257 { "vrsqrts%XH", { XMScalar, VexScalar, EXw }, PREFIX_DATA },
1258 /* 50 */
1259 { Bad_Opcode },
1260 { Bad_Opcode },
1261 { Bad_Opcode },
1262 { Bad_Opcode },
1263 { Bad_Opcode },
1264 { Bad_Opcode },
1265 { PREFIX_TABLE (PREFIX_EVEX_MAP6_56) },
1266 { PREFIX_TABLE (PREFIX_EVEX_MAP6_57) },
1267 /* 58 */
1268 { Bad_Opcode },
1269 { Bad_Opcode },
1270 { Bad_Opcode },
1271 { Bad_Opcode },
1272 { Bad_Opcode },
1273 { Bad_Opcode },
1274 { Bad_Opcode },
1275 { Bad_Opcode },
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 { Bad_Opcode },
1287 { Bad_Opcode },
1288 { Bad_Opcode },
1289 { Bad_Opcode },
1290 { Bad_Opcode },
1291 { Bad_Opcode },
1292 { Bad_Opcode },
1293 { Bad_Opcode },
1294 /* 70 */
1295 { Bad_Opcode },
1296 { Bad_Opcode },
1297 { Bad_Opcode },
1298 { Bad_Opcode },
1299 { Bad_Opcode },
1300 { Bad_Opcode },
1301 { Bad_Opcode },
1302 { Bad_Opcode },
1303 /* 78 */
1304 { Bad_Opcode },
1305 { Bad_Opcode },
1306 { Bad_Opcode },
1307 { Bad_Opcode },
1308 { Bad_Opcode },
1309 { Bad_Opcode },
1310 { Bad_Opcode },
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 { "vfmaddsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1338 { "vfmsubadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1339 /* 98 */
1340 { "vfmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1341 { "vfmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1342 { "vfmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1343 { "vfmsub132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1344 { "vfnmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1345 { "vfnmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1346 { "vfnmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1347 { "vfnmsub132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1348 /* A0 */
1349 { Bad_Opcode },
1350 { Bad_Opcode },
1351 { Bad_Opcode },
1352 { Bad_Opcode },
1353 { Bad_Opcode },
1354 { Bad_Opcode },
1355 { "vfmaddsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1356 { "vfmsubadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1357 /* A8 */
1358 { "vfmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1359 { "vfmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1360 { "vfmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1361 { "vfmsub213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1362 { "vfnmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1363 { "vfnmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1364 { "vfnmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1365 { "vfnmsub213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1366 /* B0 */
1367 { Bad_Opcode },
1368 { Bad_Opcode },
1369 { Bad_Opcode },
1370 { Bad_Opcode },
1371 { Bad_Opcode },
1372 { Bad_Opcode },
1373 { "vfmaddsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1374 { "vfmsubadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1375 /* B8 */
1376 { "vfmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1377 { "vfmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1378 { "vfmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1379 { "vfmsub231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1380 { "vfnmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1381 { "vfnmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1382 { "vfnmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1383 { "vfnmsub231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
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 { PREFIX_TABLE (PREFIX_EVEX_MAP6_D6) },
1410 { PREFIX_TABLE (PREFIX_EVEX_MAP6_D7) },
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 },