1static const struct dis386 evex_table[][256] = {
2  /* EVEX_0F */
3  {
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_FROM_VEX_TABLE (X86_64_EVEX_0F90) },
168    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F91) },
169    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F92) },
170    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F93) },
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    { "%XEvpsra%DQ",	{ XM, Vex, EXxmm }, PREFIX_DATA },
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 },
292  },
293  /* EVEX_0F38 */
294  {
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_FROM_VEX_TABLE (X86_64_VEX_0F3849) },
379    { Bad_Opcode },
380    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F384B) },
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    { 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    { "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    { 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    { "%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_0F38E0) },
549    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E1) },
550    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E2) },
551    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E3) },
552    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E4) },
553    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E5) },
554    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E6) },
555    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E7) },
556    /* E8 */
557    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E8) },
558    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E9) },
559    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EA) },
560    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EB) },
561    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EC) },
562    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38ED) },
563    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EE) },
564    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EF) },
565    /* F0 */
566    { Bad_Opcode },
567    { Bad_Opcode },
568    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F2) },
569    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F3) },
570    { Bad_Opcode },
571    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F5) },
572    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F6) },
573    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F7) },
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 },
583  },
584  /* EVEX_0F3A */
585  {
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_FROM_VEX_TABLE (X86_64_EVEX_0F3AF0) },
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 },
874  },
875  /* EVEX_MAP4_ */
876  {
877    /* 00 */
878    { "addB",             { VexGb, Eb, Gb }, NO_PREFIX },
879    { "addS",             { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
880    { "addB",             { VexGb, Gb, EbS }, NO_PREFIX },
881    { "addS",             { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
882    { Bad_Opcode },
883    { Bad_Opcode },
884    { Bad_Opcode },
885    { Bad_Opcode },
886    /* 08 */
887    { "orB",		{ VexGb, Eb, Gb }, NO_PREFIX },
888    { "orS",		{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
889    { "orB",		{ VexGb, Gb, EbS }, NO_PREFIX },
890    { "orS",		{ 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    { "andB",		{ VexGb, Eb, Gb }, NO_PREFIX },
915    { "andS",		{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
916    { "andB",		{ VexGb, Gb, EbS }, NO_PREFIX },
917    { "andS",		{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
918    { "shldS",		{ VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
919    { Bad_Opcode },
920    { Bad_Opcode },
921    { Bad_Opcode },
922    /* 28 */
923    { "subB",		{ VexGb, Eb, Gb }, NO_PREFIX },
924    { "subS",		{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
925    { "subB",		{ VexGb, Gb, EbS }, NO_PREFIX },
926    { "subS",		{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
927    { "shrdS",		{ VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
928    { Bad_Opcode },
929    { Bad_Opcode },
930    { Bad_Opcode },
931    /* 30 */
932    { "xorB",		{ VexGb, Eb, Gb }, NO_PREFIX },
933    { "xorS",		{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
934    { "xorB",		{ VexGb, Gb, EbS }, NO_PREFIX },
935    { "xorS",		{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
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    { "%CFcmovoS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
951    { "%CFcmovnoS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
952    { "%CFcmovbS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
953    { "%CFcmovaeS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
954    { "%CFcmoveS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
955    { "%CFcmovneS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
956    { "%CFcmovbeS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
957    { "%CFcmovaS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
958    /* 48 */
959    { "%CFcmovsS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
960    { "%CFcmovnsS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
961    { "%CFcmovpS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
962    { "%CFcmovnpS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
963    { "%CFcmovlS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
964    { "%CFcmovgeS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
965    { "%CFcmovleS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
966    { "%CFcmovgS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
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    { "movbeS",	{ Gv, Ev }, PREFIX_NP_OR_DATA },
987    { "movbeS",	{ Ev, Gv }, PREFIX_NP_OR_DATA },
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    { Bad_Opcode },
997    { Bad_Opcode },
998    { Bad_Opcode },
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    { 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    { 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    { "shldS",	{ 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    { "shrdS",	{ VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
1073    { Bad_Opcode },
1074    { "imulS",	{ 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    { "sha1rnds4",	{ XM, EXxmm, Ib }, NO_PREFIX },
1117    { Bad_Opcode },
1118    { Bad_Opcode },
1119    { Bad_Opcode },
1120    /* D8 */
1121    { PREFIX_TABLE (PREFIX_EVEX_MAP4_D8) },
1122    { "sha1msg1",	{ XM, EXxmm }, NO_PREFIX },
1123    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DA) },
1124    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DB) },
1125    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DC) },
1126    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DD) },
1127    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DE) },
1128    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DF) },
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    { Bad_Opcode },
1153    { Bad_Opcode },
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) },
1165  },
1166  /* EVEX_MAP5_ */
1167  {
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    { Bad_Opcode },
1197    { Bad_Opcode },
1198    { Bad_Opcode },
1199    { Bad_Opcode },
1200    { Bad_Opcode },
1201    { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
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    { 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    { Bad_Opcode },
1287    { Bad_Opcode },
1288    { Bad_Opcode },
1289    { Bad_Opcode },
1290    { Bad_Opcode },
1291    { Bad_Opcode },
1292    { "vmovwY", { XMScalar, Edw }, PREFIX_DATA },
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    { 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 },
1456  },
1457  /* EVEX_MAP6_ */
1458  {
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    { "vscalefp%XH",      { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
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    { "vgetexpp%XH",      { XM, EXxh, EXxEVexS }, PREFIX_DATA },
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    { "vrcpp%XH",	  { XM, EXxh }, PREFIX_DATA },
1546    { "vrcps%XH",	  { XMScalar, VexScalar, EXw }, PREFIX_DATA },
1547    { "vrsqrtp%XH",       { XM, EXxh }, PREFIX_DATA },
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    { "vfmadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1632    { "vfmadd132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1633    { "vfmsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1634    { "vfmsub132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1635    { "vfnmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1636    { "vfnmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1637    { "vfnmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
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    { "vfmadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1650    { "vfmadd213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1651    { "vfmsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1652    { "vfmsub213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1653    { "vfnmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1654    { "vfnmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1655    { "vfnmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
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    { "vfmadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1668    { "vfmadd231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1669    { "vfmsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1670    { "vfmsub231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1671    { "vfnmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1672    { "vfnmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1673    { "vfnmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
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 },
1747  },
1748};
1749