Fix disasm of vmovsd/vmovss with different length values.
[external/binutils.git] / opcodes / i386-dis-evex.h
1 #ifdef NEED_OPCODE_TABLE
2
3 static const struct dis386 evex_table[][256] = {
4   /* EVEX_0F */
5   {
6     /* 00 */
7     { Bad_Opcode },
8     { Bad_Opcode },
9     { Bad_Opcode },
10     { Bad_Opcode },
11     { Bad_Opcode },
12     { Bad_Opcode },
13     { Bad_Opcode },
14     { Bad_Opcode },
15     /* 08 */
16     { Bad_Opcode },
17     { Bad_Opcode },
18     { Bad_Opcode },
19     { Bad_Opcode },
20     { Bad_Opcode },
21     { Bad_Opcode },
22     { Bad_Opcode },
23     { Bad_Opcode },
24     /* 10 */
25     { PREFIX_TABLE (PREFIX_EVEX_0F10) },
26     { PREFIX_TABLE (PREFIX_EVEX_0F11) },
27     { PREFIX_TABLE (PREFIX_EVEX_0F12) },
28     { PREFIX_TABLE (PREFIX_EVEX_0F13) },
29     { PREFIX_TABLE (PREFIX_EVEX_0F14) },
30     { PREFIX_TABLE (PREFIX_EVEX_0F15) },
31     { PREFIX_TABLE (PREFIX_EVEX_0F16) },
32     { PREFIX_TABLE (PREFIX_EVEX_0F17) },
33     /* 18 */
34     { Bad_Opcode },
35     { Bad_Opcode },
36     { Bad_Opcode },
37     { Bad_Opcode },
38     { Bad_Opcode },
39     { Bad_Opcode },
40     { Bad_Opcode },
41     { Bad_Opcode },
42     /* 20 */
43     { Bad_Opcode },
44     { Bad_Opcode },
45     { Bad_Opcode },
46     { Bad_Opcode },
47     { Bad_Opcode },
48     { Bad_Opcode },
49     { Bad_Opcode },
50     { Bad_Opcode },
51     /* 28 */
52     { PREFIX_TABLE (PREFIX_EVEX_0F28) },
53     { PREFIX_TABLE (PREFIX_EVEX_0F29) },
54     { PREFIX_TABLE (PREFIX_EVEX_0F2A) },
55     { PREFIX_TABLE (PREFIX_EVEX_0F2B) },
56     { PREFIX_TABLE (PREFIX_EVEX_0F2C) },
57     { PREFIX_TABLE (PREFIX_EVEX_0F2D) },
58     { PREFIX_TABLE (PREFIX_EVEX_0F2E) },
59     { PREFIX_TABLE (PREFIX_EVEX_0F2F) },
60     /* 30 */
61     { Bad_Opcode },
62     { Bad_Opcode },
63     { Bad_Opcode },
64     { Bad_Opcode },
65     { Bad_Opcode },
66     { Bad_Opcode },
67     { Bad_Opcode },
68     { Bad_Opcode },
69     /* 38 */
70     { Bad_Opcode },
71     { Bad_Opcode },
72     { Bad_Opcode },
73     { Bad_Opcode },
74     { Bad_Opcode },
75     { Bad_Opcode },
76     { Bad_Opcode },
77     { Bad_Opcode },
78     /* 40 */
79     { Bad_Opcode },
80     { Bad_Opcode },
81     { Bad_Opcode },
82     { Bad_Opcode },
83     { Bad_Opcode },
84     { Bad_Opcode },
85     { Bad_Opcode },
86     { Bad_Opcode },
87     /* 48 */
88     { Bad_Opcode },
89     { Bad_Opcode },
90     { Bad_Opcode },
91     { Bad_Opcode },
92     { Bad_Opcode },
93     { Bad_Opcode },
94     { Bad_Opcode },
95     { Bad_Opcode },
96     /* 50 */
97     { Bad_Opcode },
98     { PREFIX_TABLE (PREFIX_EVEX_0F51) },
99     { Bad_Opcode },
100     { Bad_Opcode },
101     { Bad_Opcode },
102     { Bad_Opcode },
103     { Bad_Opcode },
104     { Bad_Opcode },
105     /* 58 */
106     { PREFIX_TABLE (PREFIX_EVEX_0F58) },
107     { PREFIX_TABLE (PREFIX_EVEX_0F59) },
108     { PREFIX_TABLE (PREFIX_EVEX_0F5A) },
109     { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
110     { PREFIX_TABLE (PREFIX_EVEX_0F5C) },
111     { PREFIX_TABLE (PREFIX_EVEX_0F5D) },
112     { PREFIX_TABLE (PREFIX_EVEX_0F5E) },
113     { PREFIX_TABLE (PREFIX_EVEX_0F5F) },
114     /* 60 */
115     { Bad_Opcode },
116     { Bad_Opcode },
117     { PREFIX_TABLE (PREFIX_EVEX_0F62) },
118     { Bad_Opcode },
119     { Bad_Opcode },
120     { Bad_Opcode },
121     { PREFIX_TABLE (PREFIX_EVEX_0F66) },
122     { Bad_Opcode },
123     /* 68 */
124     { Bad_Opcode },
125     { Bad_Opcode },
126     { PREFIX_TABLE (PREFIX_EVEX_0F6A) },
127     { Bad_Opcode },
128     { PREFIX_TABLE (PREFIX_EVEX_0F6C) },
129     { PREFIX_TABLE (PREFIX_EVEX_0F6D) },
130     { PREFIX_TABLE (PREFIX_EVEX_0F6E) },
131     { PREFIX_TABLE (PREFIX_EVEX_0F6F) },
132     /* 70 */
133     { PREFIX_TABLE (PREFIX_EVEX_0F70) },
134     { Bad_Opcode },
135     { REG_TABLE (REG_EVEX_0F72) },
136     { REG_TABLE (REG_EVEX_0F73) },
137     { Bad_Opcode },
138     { Bad_Opcode },
139     { PREFIX_TABLE (PREFIX_EVEX_0F76) },
140     { Bad_Opcode },
141     /* 78 */
142     { PREFIX_TABLE (PREFIX_EVEX_0F78) },
143     { PREFIX_TABLE (PREFIX_EVEX_0F79) },
144     { PREFIX_TABLE (PREFIX_EVEX_0F7A) },
145     { PREFIX_TABLE (PREFIX_EVEX_0F7B) },
146     { Bad_Opcode },
147     { Bad_Opcode },
148     { PREFIX_TABLE (PREFIX_EVEX_0F7E) },
149     { PREFIX_TABLE (PREFIX_EVEX_0F7F) },
150     /* 80 */
151     { Bad_Opcode },
152     { Bad_Opcode },
153     { Bad_Opcode },
154     { Bad_Opcode },
155     { Bad_Opcode },
156     { Bad_Opcode },
157     { Bad_Opcode },
158     { Bad_Opcode },
159     /* 88 */
160     { Bad_Opcode },
161     { Bad_Opcode },
162     { Bad_Opcode },
163     { Bad_Opcode },
164     { Bad_Opcode },
165     { Bad_Opcode },
166     { Bad_Opcode },
167     { Bad_Opcode },
168     /* 90 */
169     { Bad_Opcode },
170     { Bad_Opcode },
171     { Bad_Opcode },
172     { Bad_Opcode },
173     { Bad_Opcode },
174     { Bad_Opcode },
175     { Bad_Opcode },
176     { Bad_Opcode },
177     /* 98 */
178     { Bad_Opcode },
179     { Bad_Opcode },
180     { Bad_Opcode },
181     { Bad_Opcode },
182     { Bad_Opcode },
183     { Bad_Opcode },
184     { Bad_Opcode },
185     { Bad_Opcode },
186     /* A0 */
187     { Bad_Opcode },
188     { Bad_Opcode },
189     { Bad_Opcode },
190     { Bad_Opcode },
191     { Bad_Opcode },
192     { Bad_Opcode },
193     { Bad_Opcode },
194     { Bad_Opcode },
195     /* A8 */
196     { Bad_Opcode },
197     { Bad_Opcode },
198     { Bad_Opcode },
199     { Bad_Opcode },
200     { Bad_Opcode },
201     { Bad_Opcode },
202     { Bad_Opcode },
203     { Bad_Opcode },
204     /* B0 */
205     { Bad_Opcode },
206     { Bad_Opcode },
207     { Bad_Opcode },
208     { Bad_Opcode },
209     { Bad_Opcode },
210     { Bad_Opcode },
211     { Bad_Opcode },
212     { Bad_Opcode },
213     /* B8 */
214     { Bad_Opcode },
215     { Bad_Opcode },
216     { Bad_Opcode },
217     { Bad_Opcode },
218     { Bad_Opcode },
219     { Bad_Opcode },
220     { Bad_Opcode },
221     { Bad_Opcode },
222     /* C0 */
223     { Bad_Opcode },
224     { Bad_Opcode },
225     { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
226     { Bad_Opcode },
227     { Bad_Opcode },
228     { Bad_Opcode },
229     { PREFIX_TABLE (PREFIX_EVEX_0FC6) },
230     { Bad_Opcode },
231     /* C8 */
232     { Bad_Opcode },
233     { Bad_Opcode },
234     { Bad_Opcode },
235     { Bad_Opcode },
236     { Bad_Opcode },
237     { Bad_Opcode },
238     { Bad_Opcode },
239     { Bad_Opcode },
240     /* D0 */
241     { Bad_Opcode },
242     { Bad_Opcode },
243     { PREFIX_TABLE (PREFIX_EVEX_0FD2) },
244     { PREFIX_TABLE (PREFIX_EVEX_0FD3) },
245     { PREFIX_TABLE (PREFIX_EVEX_0FD4) },
246     { Bad_Opcode },
247     { PREFIX_TABLE (PREFIX_EVEX_0FD6) },
248     { Bad_Opcode },
249     /* D8 */
250     { Bad_Opcode },
251     { Bad_Opcode },
252     { Bad_Opcode },
253     { PREFIX_TABLE (PREFIX_EVEX_0FDB) },
254     { Bad_Opcode },
255     { Bad_Opcode },
256     { Bad_Opcode },
257     { PREFIX_TABLE (PREFIX_EVEX_0FDF) },
258     /* E0 */
259     { Bad_Opcode },
260     { Bad_Opcode },
261     { PREFIX_TABLE (PREFIX_EVEX_0FE2) },
262     { Bad_Opcode },
263     { Bad_Opcode },
264     { Bad_Opcode },
265     { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
266     { PREFIX_TABLE (PREFIX_EVEX_0FE7) },
267     /* E8 */
268     { Bad_Opcode },
269     { Bad_Opcode },
270     { Bad_Opcode },
271     { PREFIX_TABLE (PREFIX_EVEX_0FEB) },
272     { Bad_Opcode },
273     { Bad_Opcode },
274     { Bad_Opcode },
275     { PREFIX_TABLE (PREFIX_EVEX_0FEF) },
276     /* F0 */
277     { Bad_Opcode },
278     { Bad_Opcode },
279     { PREFIX_TABLE (PREFIX_EVEX_0FF2) },
280     { PREFIX_TABLE (PREFIX_EVEX_0FF3) },
281     { PREFIX_TABLE (PREFIX_EVEX_0FF4) },
282     { Bad_Opcode },
283     { Bad_Opcode },
284     { Bad_Opcode },
285     /* F8 */
286     { Bad_Opcode },
287     { Bad_Opcode },
288     { PREFIX_TABLE (PREFIX_EVEX_0FFA) },
289     { PREFIX_TABLE (PREFIX_EVEX_0FFB) },
290     { Bad_Opcode },
291     { Bad_Opcode },
292     { PREFIX_TABLE (PREFIX_EVEX_0FFE) },
293     { Bad_Opcode },
294   },
295   /* EVEX_0F38 */
296   {
297     /* 00 */
298     { Bad_Opcode },
299     { Bad_Opcode },
300     { Bad_Opcode },
301     { Bad_Opcode },
302     { Bad_Opcode },
303     { Bad_Opcode },
304     { Bad_Opcode },
305     { Bad_Opcode },
306     /* 08 */
307     { Bad_Opcode },
308     { Bad_Opcode },
309     { Bad_Opcode },
310     { Bad_Opcode },
311     { PREFIX_TABLE (PREFIX_EVEX_0F380C) },
312     { PREFIX_TABLE (PREFIX_EVEX_0F380D) },
313     { Bad_Opcode },
314     { Bad_Opcode },
315     /* 10 */
316     { Bad_Opcode },
317     { PREFIX_TABLE (PREFIX_EVEX_0F3811) },
318     { PREFIX_TABLE (PREFIX_EVEX_0F3812) },
319     { PREFIX_TABLE (PREFIX_EVEX_0F3813) },
320     { PREFIX_TABLE (PREFIX_EVEX_0F3814) },
321     { PREFIX_TABLE (PREFIX_EVEX_0F3815) },
322     { PREFIX_TABLE (PREFIX_EVEX_0F3816) },
323     { Bad_Opcode },
324     /* 18 */
325     { PREFIX_TABLE (PREFIX_EVEX_0F3818) },
326     { PREFIX_TABLE (PREFIX_EVEX_0F3819) },
327     { PREFIX_TABLE (PREFIX_EVEX_0F381A) },
328     { PREFIX_TABLE (PREFIX_EVEX_0F381B) },
329     { Bad_Opcode },
330     { Bad_Opcode },
331     { PREFIX_TABLE (PREFIX_EVEX_0F381E) },
332     { PREFIX_TABLE (PREFIX_EVEX_0F381F) },
333     /* 20 */
334     { Bad_Opcode },
335     { PREFIX_TABLE (PREFIX_EVEX_0F3821) },
336     { PREFIX_TABLE (PREFIX_EVEX_0F3822) },
337     { PREFIX_TABLE (PREFIX_EVEX_0F3823) },
338     { PREFIX_TABLE (PREFIX_EVEX_0F3824) },
339     { PREFIX_TABLE (PREFIX_EVEX_0F3825) },
340     { Bad_Opcode },
341     { PREFIX_TABLE (PREFIX_EVEX_0F3827) },
342     /* 28 */
343     { PREFIX_TABLE (PREFIX_EVEX_0F3828) },
344     { PREFIX_TABLE (PREFIX_EVEX_0F3829) },
345     { PREFIX_TABLE (PREFIX_EVEX_0F382A) },
346     { Bad_Opcode },
347     { PREFIX_TABLE (PREFIX_EVEX_0F382C) },
348     { PREFIX_TABLE (PREFIX_EVEX_0F382D) },
349     { Bad_Opcode },
350     { Bad_Opcode },
351     /* 30 */
352     { Bad_Opcode },
353     { PREFIX_TABLE (PREFIX_EVEX_0F3831) },
354     { PREFIX_TABLE (PREFIX_EVEX_0F3832) },
355     { PREFIX_TABLE (PREFIX_EVEX_0F3833) },
356     { PREFIX_TABLE (PREFIX_EVEX_0F3834) },
357     { PREFIX_TABLE (PREFIX_EVEX_0F3835) },
358     { PREFIX_TABLE (PREFIX_EVEX_0F3836) },
359     { PREFIX_TABLE (PREFIX_EVEX_0F3837) },
360     /* 38 */
361     { Bad_Opcode },
362     { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
363     { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
364     { PREFIX_TABLE (PREFIX_EVEX_0F383B) },
365     { Bad_Opcode },
366     { PREFIX_TABLE (PREFIX_EVEX_0F383D) },
367     { Bad_Opcode },
368     { PREFIX_TABLE (PREFIX_EVEX_0F383F) },
369     /* 40 */
370     { PREFIX_TABLE (PREFIX_EVEX_0F3840) },
371     { Bad_Opcode },
372     { PREFIX_TABLE (PREFIX_EVEX_0F3842) },
373     { PREFIX_TABLE (PREFIX_EVEX_0F3843) },
374     { PREFIX_TABLE (PREFIX_EVEX_0F3844) },
375     { PREFIX_TABLE (PREFIX_EVEX_0F3845) },
376     { PREFIX_TABLE (PREFIX_EVEX_0F3846) },
377     { PREFIX_TABLE (PREFIX_EVEX_0F3847) },
378     /* 48 */
379     { Bad_Opcode },
380     { Bad_Opcode },
381     { Bad_Opcode },
382     { Bad_Opcode },
383     { PREFIX_TABLE (PREFIX_EVEX_0F384C) },
384     { PREFIX_TABLE (PREFIX_EVEX_0F384D) },
385     { PREFIX_TABLE (PREFIX_EVEX_0F384E) },
386     { PREFIX_TABLE (PREFIX_EVEX_0F384F) },
387     /* 50 */
388     { Bad_Opcode },
389     { Bad_Opcode },
390     { Bad_Opcode },
391     { Bad_Opcode },
392     { Bad_Opcode },
393     { Bad_Opcode },
394     { Bad_Opcode },
395     { Bad_Opcode },
396     /* 58 */
397     { PREFIX_TABLE (PREFIX_EVEX_0F3858) },
398     { PREFIX_TABLE (PREFIX_EVEX_0F3859) },
399     { PREFIX_TABLE (PREFIX_EVEX_0F385A) },
400     { PREFIX_TABLE (PREFIX_EVEX_0F385B) },
401     { Bad_Opcode },
402     { Bad_Opcode },
403     { Bad_Opcode },
404     { Bad_Opcode },
405     /* 60 */
406     { Bad_Opcode },
407     { Bad_Opcode },
408     { Bad_Opcode },
409     { Bad_Opcode },
410     { PREFIX_TABLE (PREFIX_EVEX_0F3864) },
411     { PREFIX_TABLE (PREFIX_EVEX_0F3865) },
412     { Bad_Opcode },
413     { Bad_Opcode },
414     /* 68 */
415     { Bad_Opcode },
416     { Bad_Opcode },
417     { Bad_Opcode },
418     { Bad_Opcode },
419     { Bad_Opcode },
420     { Bad_Opcode },
421     { Bad_Opcode },
422     { Bad_Opcode },
423     /* 70 */
424     { Bad_Opcode },
425     { Bad_Opcode },
426     { Bad_Opcode },
427     { Bad_Opcode },
428     { Bad_Opcode },
429     { Bad_Opcode },
430     { PREFIX_TABLE (PREFIX_EVEX_0F3876) },
431     { PREFIX_TABLE (PREFIX_EVEX_0F3877) },
432     /* 78 */
433     { Bad_Opcode },
434     { Bad_Opcode },
435     { Bad_Opcode },
436     { Bad_Opcode },
437     { PREFIX_TABLE (PREFIX_EVEX_0F387C) },
438     { Bad_Opcode },
439     { PREFIX_TABLE (PREFIX_EVEX_0F387E) },
440     { PREFIX_TABLE (PREFIX_EVEX_0F387F) },
441     /* 80 */
442     { Bad_Opcode },
443     { Bad_Opcode },
444     { Bad_Opcode },
445     { Bad_Opcode },
446     { Bad_Opcode },
447     { Bad_Opcode },
448     { Bad_Opcode },
449     { Bad_Opcode },
450     /* 88 */
451     { PREFIX_TABLE (PREFIX_EVEX_0F3888) },
452     { PREFIX_TABLE (PREFIX_EVEX_0F3889) },
453     { PREFIX_TABLE (PREFIX_EVEX_0F388A) },
454     { PREFIX_TABLE (PREFIX_EVEX_0F388B) },
455     { Bad_Opcode },
456     { Bad_Opcode },
457     { Bad_Opcode },
458     { Bad_Opcode },
459     /* 90 */
460     { PREFIX_TABLE (PREFIX_EVEX_0F3890) },
461     { PREFIX_TABLE (PREFIX_EVEX_0F3891) },
462     { PREFIX_TABLE (PREFIX_EVEX_0F3892) },
463     { PREFIX_TABLE (PREFIX_EVEX_0F3893) },
464     { Bad_Opcode },
465     { Bad_Opcode },
466     { PREFIX_TABLE (PREFIX_EVEX_0F3896) },
467     { PREFIX_TABLE (PREFIX_EVEX_0F3897) },
468     /* 98 */
469     { PREFIX_TABLE (PREFIX_EVEX_0F3898) },
470     { PREFIX_TABLE (PREFIX_EVEX_0F3899) },
471     { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
472     { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
473     { PREFIX_TABLE (PREFIX_EVEX_0F389C) },
474     { PREFIX_TABLE (PREFIX_EVEX_0F389D) },
475     { PREFIX_TABLE (PREFIX_EVEX_0F389E) },
476     { PREFIX_TABLE (PREFIX_EVEX_0F389F) },
477     /* A0 */
478     { PREFIX_TABLE (PREFIX_EVEX_0F38A0) },
479     { PREFIX_TABLE (PREFIX_EVEX_0F38A1) },
480     { PREFIX_TABLE (PREFIX_EVEX_0F38A2) },
481     { PREFIX_TABLE (PREFIX_EVEX_0F38A3) },
482     { Bad_Opcode },
483     { Bad_Opcode },
484     { PREFIX_TABLE (PREFIX_EVEX_0F38A6) },
485     { PREFIX_TABLE (PREFIX_EVEX_0F38A7) },
486     /* A8 */
487     { PREFIX_TABLE (PREFIX_EVEX_0F38A8) },
488     { PREFIX_TABLE (PREFIX_EVEX_0F38A9) },
489     { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
490     { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
491     { PREFIX_TABLE (PREFIX_EVEX_0F38AC) },
492     { PREFIX_TABLE (PREFIX_EVEX_0F38AD) },
493     { PREFIX_TABLE (PREFIX_EVEX_0F38AE) },
494     { PREFIX_TABLE (PREFIX_EVEX_0F38AF) },
495     /* B0 */
496     { Bad_Opcode },
497     { Bad_Opcode },
498     { Bad_Opcode },
499     { Bad_Opcode },
500     { Bad_Opcode },
501     { Bad_Opcode },
502     { PREFIX_TABLE (PREFIX_EVEX_0F38B6) },
503     { PREFIX_TABLE (PREFIX_EVEX_0F38B7) },
504     /* B8 */
505     { PREFIX_TABLE (PREFIX_EVEX_0F38B8) },
506     { PREFIX_TABLE (PREFIX_EVEX_0F38B9) },
507     { PREFIX_TABLE (PREFIX_EVEX_0F38BA) },
508     { PREFIX_TABLE (PREFIX_EVEX_0F38BB) },
509     { PREFIX_TABLE (PREFIX_EVEX_0F38BC) },
510     { PREFIX_TABLE (PREFIX_EVEX_0F38BD) },
511     { PREFIX_TABLE (PREFIX_EVEX_0F38BE) },
512     { PREFIX_TABLE (PREFIX_EVEX_0F38BF) },
513     /* C0 */
514     { Bad_Opcode },
515     { Bad_Opcode },
516     { Bad_Opcode },
517     { Bad_Opcode },
518     { PREFIX_TABLE (PREFIX_EVEX_0F38C4) },
519     { Bad_Opcode },
520     { REG_TABLE (REG_EVEX_0F38C6) },
521     { REG_TABLE (REG_EVEX_0F38C7) },
522     /* C8 */
523     { PREFIX_TABLE (PREFIX_EVEX_0F38C8) },
524     { Bad_Opcode },
525     { PREFIX_TABLE (PREFIX_EVEX_0F38CA) },
526     { PREFIX_TABLE (PREFIX_EVEX_0F38CB) },
527     { PREFIX_TABLE (PREFIX_EVEX_0F38CC) },
528     { PREFIX_TABLE (PREFIX_EVEX_0F38CD) },
529     { Bad_Opcode },
530     { Bad_Opcode },
531     /* D0 */
532     { Bad_Opcode },
533     { Bad_Opcode },
534     { Bad_Opcode },
535     { Bad_Opcode },
536     { Bad_Opcode },
537     { Bad_Opcode },
538     { Bad_Opcode },
539     { Bad_Opcode },
540     /* D8 */
541     { Bad_Opcode },
542     { Bad_Opcode },
543     { Bad_Opcode },
544     { Bad_Opcode },
545     { Bad_Opcode },
546     { Bad_Opcode },
547     { Bad_Opcode },
548     { Bad_Opcode },
549     /* E0 */
550     { Bad_Opcode },
551     { Bad_Opcode },
552     { Bad_Opcode },
553     { Bad_Opcode },
554     { Bad_Opcode },
555     { Bad_Opcode },
556     { Bad_Opcode },
557     { Bad_Opcode },
558     /* E8 */
559     { Bad_Opcode },
560     { Bad_Opcode },
561     { Bad_Opcode },
562     { Bad_Opcode },
563     { Bad_Opcode },
564     { Bad_Opcode },
565     { Bad_Opcode },
566     { Bad_Opcode },
567     /* F0 */
568     { Bad_Opcode },
569     { Bad_Opcode },
570     { Bad_Opcode },
571     { Bad_Opcode },
572     { Bad_Opcode },
573     { Bad_Opcode },
574     { Bad_Opcode },
575     { Bad_Opcode },
576     /* F8 */
577     { Bad_Opcode },
578     { Bad_Opcode },
579     { Bad_Opcode },
580     { Bad_Opcode },
581     { Bad_Opcode },
582     { Bad_Opcode },
583     { Bad_Opcode },
584     { Bad_Opcode },
585   },
586   /* EVEX_0F3A */
587   {
588     /* 00 */
589     { PREFIX_TABLE (PREFIX_EVEX_0F3A00) },
590     { PREFIX_TABLE (PREFIX_EVEX_0F3A01) },
591     { Bad_Opcode },
592     { PREFIX_TABLE (PREFIX_EVEX_0F3A03) },
593     { PREFIX_TABLE (PREFIX_EVEX_0F3A04) },
594     { PREFIX_TABLE (PREFIX_EVEX_0F3A05) },
595     { Bad_Opcode },
596     { Bad_Opcode },
597     /* 08 */
598     { PREFIX_TABLE (PREFIX_EVEX_0F3A08) },
599     { PREFIX_TABLE (PREFIX_EVEX_0F3A09) },
600     { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) },
601     { PREFIX_TABLE (PREFIX_EVEX_0F3A0B) },
602     { Bad_Opcode },
603     { Bad_Opcode },
604     { Bad_Opcode },
605     { Bad_Opcode },
606     /* 10 */
607     { Bad_Opcode },
608     { Bad_Opcode },
609     { Bad_Opcode },
610     { Bad_Opcode },
611     { Bad_Opcode },
612     { Bad_Opcode },
613     { Bad_Opcode },
614     { PREFIX_TABLE (PREFIX_EVEX_0F3A17) },
615     /* 18 */
616     { PREFIX_TABLE (PREFIX_EVEX_0F3A18) },
617     { PREFIX_TABLE (PREFIX_EVEX_0F3A19) },
618     { PREFIX_TABLE (PREFIX_EVEX_0F3A1A) },
619     { PREFIX_TABLE (PREFIX_EVEX_0F3A1B) },
620     { Bad_Opcode },
621     { PREFIX_TABLE (PREFIX_EVEX_0F3A1D) },
622     { PREFIX_TABLE (PREFIX_EVEX_0F3A1E) },
623     { PREFIX_TABLE (PREFIX_EVEX_0F3A1F) },
624     /* 20 */
625     { Bad_Opcode },
626     { PREFIX_TABLE (PREFIX_EVEX_0F3A21) },
627     { Bad_Opcode },
628     { PREFIX_TABLE (PREFIX_EVEX_0F3A23) },
629     { Bad_Opcode },
630     { PREFIX_TABLE (PREFIX_EVEX_0F3A25) },
631     { PREFIX_TABLE (PREFIX_EVEX_0F3A26) },
632     { PREFIX_TABLE (PREFIX_EVEX_0F3A27) },
633     /* 28 */
634     { Bad_Opcode },
635     { Bad_Opcode },
636     { Bad_Opcode },
637     { Bad_Opcode },
638     { Bad_Opcode },
639     { Bad_Opcode },
640     { Bad_Opcode },
641     { Bad_Opcode },
642     /* 30 */
643     { Bad_Opcode },
644     { Bad_Opcode },
645     { Bad_Opcode },
646     { Bad_Opcode },
647     { Bad_Opcode },
648     { Bad_Opcode },
649     { Bad_Opcode },
650     { Bad_Opcode },
651     /* 38 */
652     { PREFIX_TABLE (PREFIX_EVEX_0F3A38) },
653     { PREFIX_TABLE (PREFIX_EVEX_0F3A39) },
654     { PREFIX_TABLE (PREFIX_EVEX_0F3A3A) },
655     { PREFIX_TABLE (PREFIX_EVEX_0F3A3B) },
656     { Bad_Opcode },
657     { Bad_Opcode },
658     { Bad_Opcode },
659     { Bad_Opcode },
660     /* 40 */
661     { Bad_Opcode },
662     { Bad_Opcode },
663     { Bad_Opcode },
664     { PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
665     { Bad_Opcode },
666     { Bad_Opcode },
667     { Bad_Opcode },
668     { Bad_Opcode },
669     /* 48 */
670     { Bad_Opcode },
671     { Bad_Opcode },
672     { Bad_Opcode },
673     { Bad_Opcode },
674     { Bad_Opcode },
675     { Bad_Opcode },
676     { Bad_Opcode },
677     { Bad_Opcode },
678     /* 50 */
679     { Bad_Opcode },
680     { Bad_Opcode },
681     { Bad_Opcode },
682     { Bad_Opcode },
683     { PREFIX_TABLE (PREFIX_EVEX_0F3A54) },
684     { PREFIX_TABLE (PREFIX_EVEX_0F3A55) },
685     { Bad_Opcode },
686     { Bad_Opcode },
687     /* 58 */
688     { Bad_Opcode },
689     { Bad_Opcode },
690     { Bad_Opcode },
691     { Bad_Opcode },
692     { Bad_Opcode },
693     { Bad_Opcode },
694     { Bad_Opcode },
695     { Bad_Opcode },
696     /* 60 */
697     { Bad_Opcode },
698     { Bad_Opcode },
699     { Bad_Opcode },
700     { Bad_Opcode },
701     { Bad_Opcode },
702     { Bad_Opcode },
703     { Bad_Opcode },
704     { Bad_Opcode },
705     /* 68 */
706     { Bad_Opcode },
707     { Bad_Opcode },
708     { Bad_Opcode },
709     { Bad_Opcode },
710     { Bad_Opcode },
711     { Bad_Opcode },
712     { Bad_Opcode },
713     { Bad_Opcode },
714     /* 70 */
715     { Bad_Opcode },
716     { Bad_Opcode },
717     { Bad_Opcode },
718     { Bad_Opcode },
719     { Bad_Opcode },
720     { Bad_Opcode },
721     { Bad_Opcode },
722     { Bad_Opcode },
723     /* 78 */
724     { Bad_Opcode },
725     { Bad_Opcode },
726     { Bad_Opcode },
727     { Bad_Opcode },
728     { Bad_Opcode },
729     { Bad_Opcode },
730     { Bad_Opcode },
731     { Bad_Opcode },
732     /* 80 */
733     { Bad_Opcode },
734     { Bad_Opcode },
735     { Bad_Opcode },
736     { Bad_Opcode },
737     { Bad_Opcode },
738     { Bad_Opcode },
739     { Bad_Opcode },
740     { Bad_Opcode },
741     /* 88 */
742     { Bad_Opcode },
743     { Bad_Opcode },
744     { Bad_Opcode },
745     { Bad_Opcode },
746     { Bad_Opcode },
747     { Bad_Opcode },
748     { Bad_Opcode },
749     { Bad_Opcode },
750     /* 90 */
751     { Bad_Opcode },
752     { Bad_Opcode },
753     { Bad_Opcode },
754     { Bad_Opcode },
755     { Bad_Opcode },
756     { Bad_Opcode },
757     { Bad_Opcode },
758     { Bad_Opcode },
759     /* 98 */
760     { Bad_Opcode },
761     { Bad_Opcode },
762     { Bad_Opcode },
763     { Bad_Opcode },
764     { Bad_Opcode },
765     { Bad_Opcode },
766     { Bad_Opcode },
767     { Bad_Opcode },
768     /* A0 */
769     { Bad_Opcode },
770     { Bad_Opcode },
771     { Bad_Opcode },
772     { Bad_Opcode },
773     { Bad_Opcode },
774     { Bad_Opcode },
775     { Bad_Opcode },
776     { Bad_Opcode },
777     /* A8 */
778     { Bad_Opcode },
779     { Bad_Opcode },
780     { Bad_Opcode },
781     { Bad_Opcode },
782     { Bad_Opcode },
783     { Bad_Opcode },
784     { Bad_Opcode },
785     { Bad_Opcode },
786     /* B0 */
787     { Bad_Opcode },
788     { Bad_Opcode },
789     { Bad_Opcode },
790     { Bad_Opcode },
791     { Bad_Opcode },
792     { Bad_Opcode },
793     { Bad_Opcode },
794     { Bad_Opcode },
795     /* B8 */
796     { Bad_Opcode },
797     { Bad_Opcode },
798     { Bad_Opcode },
799     { Bad_Opcode },
800     { Bad_Opcode },
801     { Bad_Opcode },
802     { Bad_Opcode },
803     { Bad_Opcode },
804     /* C0 */
805     { Bad_Opcode },
806     { Bad_Opcode },
807     { Bad_Opcode },
808     { Bad_Opcode },
809     { Bad_Opcode },
810     { Bad_Opcode },
811     { Bad_Opcode },
812     { Bad_Opcode },
813     /* C8 */
814     { Bad_Opcode },
815     { Bad_Opcode },
816     { Bad_Opcode },
817     { Bad_Opcode },
818     { Bad_Opcode },
819     { Bad_Opcode },
820     { Bad_Opcode },
821     { Bad_Opcode },
822     /* D0 */
823     { Bad_Opcode },
824     { Bad_Opcode },
825     { Bad_Opcode },
826     { Bad_Opcode },
827     { Bad_Opcode },
828     { Bad_Opcode },
829     { Bad_Opcode },
830     { Bad_Opcode },
831     /* D8 */
832     { Bad_Opcode },
833     { Bad_Opcode },
834     { Bad_Opcode },
835     { Bad_Opcode },
836     { Bad_Opcode },
837     { Bad_Opcode },
838     { Bad_Opcode },
839     { Bad_Opcode },
840     /* E0 */
841     { Bad_Opcode },
842     { Bad_Opcode },
843     { Bad_Opcode },
844     { Bad_Opcode },
845     { Bad_Opcode },
846     { Bad_Opcode },
847     { Bad_Opcode },
848     { Bad_Opcode },
849     /* E8 */
850     { Bad_Opcode },
851     { Bad_Opcode },
852     { Bad_Opcode },
853     { Bad_Opcode },
854     { Bad_Opcode },
855     { Bad_Opcode },
856     { Bad_Opcode },
857     { Bad_Opcode },
858     /* F0 */
859     { Bad_Opcode },
860     { Bad_Opcode },
861     { Bad_Opcode },
862     { Bad_Opcode },
863     { Bad_Opcode },
864     { Bad_Opcode },
865     { Bad_Opcode },
866     { Bad_Opcode },
867     /* F8 */
868     { Bad_Opcode },
869     { Bad_Opcode },
870     { Bad_Opcode },
871     { Bad_Opcode },
872     { Bad_Opcode },
873     { Bad_Opcode },
874     { Bad_Opcode },
875     { Bad_Opcode },
876   },
877 };
878 #endif /* NEED_OPCODE_TABLE */
879
880 #ifdef NEED_REG_TABLE
881   /* REG_EVEX_0F72 */
882   {
883     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_0) },
884     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_1) },
885     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_2) },
886     { Bad_Opcode },
887     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_4) },
888     { Bad_Opcode },
889     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_6) },
890   },
891   /* REG_EVEX_0F73 */
892   {
893     { Bad_Opcode },
894     { Bad_Opcode },
895     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_2) },
896     { Bad_Opcode },
897     { Bad_Opcode },
898     { Bad_Opcode },
899     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_6) },
900   },
901   /* REG_EVEX_0F38C6 */
902   {
903     { Bad_Opcode },
904     { MOD_TABLE (MOD_EVEX_0F38C6_REG_1) },
905     { MOD_TABLE (MOD_EVEX_0F38C6_REG_2) },
906     { Bad_Opcode },
907     { Bad_Opcode },
908     { MOD_TABLE (MOD_EVEX_0F38C6_REG_5) },
909     { MOD_TABLE (MOD_EVEX_0F38C6_REG_6) },
910   },
911   /* REG_EVEX_0F38C7 */
912   {
913     { Bad_Opcode },
914     { MOD_TABLE (MOD_EVEX_0F38C7_REG_1) },
915     { MOD_TABLE (MOD_EVEX_0F38C7_REG_2) },
916     { Bad_Opcode },
917     { Bad_Opcode },
918     { MOD_TABLE (MOD_EVEX_0F38C7_REG_5) },
919     { MOD_TABLE (MOD_EVEX_0F38C7_REG_6) },
920   },
921 #endif /* NEED_REG_TABLE */
922
923 #ifdef NEED_PREFIX_TABLE
924   /* PREFIX_EVEX_0F10 */
925   {
926     { VEX_W_TABLE (EVEX_W_0F10_P_0) },
927     { MOD_TABLE (MOD_EVEX_0F10_PREFIX_1) },
928     { VEX_W_TABLE (EVEX_W_0F10_P_2) },
929     { MOD_TABLE (MOD_EVEX_0F10_PREFIX_3) },
930   },
931   /* PREFIX_EVEX_0F11 */
932   {
933     { VEX_W_TABLE (EVEX_W_0F11_P_0) },
934     { MOD_TABLE (MOD_EVEX_0F11_PREFIX_1) },
935     { VEX_W_TABLE (EVEX_W_0F11_P_2) },
936     { MOD_TABLE (MOD_EVEX_0F11_PREFIX_3) },
937   },
938   /* PREFIX_EVEX_0F12 */
939   {
940     { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) },
941     { VEX_W_TABLE (EVEX_W_0F12_P_1) },
942     { VEX_W_TABLE (EVEX_W_0F12_P_2) },
943     { VEX_W_TABLE (EVEX_W_0F12_P_3) },
944   },
945   /* PREFIX_EVEX_0F13 */
946   {
947     { VEX_W_TABLE (EVEX_W_0F13_P_0) },
948     { Bad_Opcode },
949     { VEX_W_TABLE (EVEX_W_0F13_P_2) },
950   },
951   /* PREFIX_EVEX_0F14 */
952   {
953     { VEX_W_TABLE (EVEX_W_0F14_P_0) },
954     { Bad_Opcode },
955     { VEX_W_TABLE (EVEX_W_0F14_P_2) },
956   },
957   /* PREFIX_EVEX_0F15 */
958   {
959     { VEX_W_TABLE (EVEX_W_0F15_P_0) },
960     { Bad_Opcode },
961     { VEX_W_TABLE (EVEX_W_0F15_P_2) },
962   },
963   /* PREFIX_EVEX_0F16 */
964   {
965     { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) },
966     { VEX_W_TABLE (EVEX_W_0F16_P_1) },
967     { VEX_W_TABLE (EVEX_W_0F16_P_2) },
968   },
969   /* PREFIX_EVEX_0F17 */
970   {
971     { VEX_W_TABLE (EVEX_W_0F17_P_0) },
972     { Bad_Opcode },
973     { VEX_W_TABLE (EVEX_W_0F17_P_2) },
974   },
975   /* PREFIX_EVEX_0F28 */
976   {
977     { VEX_W_TABLE (EVEX_W_0F28_P_0) },
978     { Bad_Opcode },
979     { VEX_W_TABLE (EVEX_W_0F28_P_2) },
980   },
981   /* PREFIX_EVEX_0F29 */
982   {
983     { VEX_W_TABLE (EVEX_W_0F29_P_0) },
984     { Bad_Opcode },
985     { VEX_W_TABLE (EVEX_W_0F29_P_2) },
986   },
987   /* PREFIX_EVEX_0F2A */
988   {
989     { Bad_Opcode },
990     { VEX_W_TABLE (EVEX_W_0F2A_P_1) },
991     { Bad_Opcode },
992     { VEX_W_TABLE (EVEX_W_0F2A_P_3) },
993   },
994   /* PREFIX_EVEX_0F2B */
995   {
996     { VEX_W_TABLE (EVEX_W_0F2B_P_0) },
997     { Bad_Opcode },
998     { VEX_W_TABLE (EVEX_W_0F2B_P_2) },
999   },
1000   /* PREFIX_EVEX_0F2C */
1001   {
1002     { Bad_Opcode },
1003     { "vcvttss2si",     { Gdq, EXxmm_md, EXxEVexS } },
1004     { Bad_Opcode },
1005     { "vcvttsd2si",     { Gdq, EXxmm_mq, EXxEVexS } },
1006   },
1007   /* PREFIX_EVEX_0F2D */
1008   {
1009     { Bad_Opcode },
1010     { "vcvtss2si",      { Gdq, EXxmm_md, EXxEVexR } },
1011     { Bad_Opcode },
1012     { "vcvtsd2si",      { Gdq, EXxmm_mq, EXxEVexR } },
1013   },
1014   /* PREFIX_EVEX_0F2E */
1015   {
1016     { VEX_W_TABLE (EVEX_W_0F2E_P_0) },
1017     { Bad_Opcode },
1018     { VEX_W_TABLE (EVEX_W_0F2E_P_2) },
1019   },
1020   /* PREFIX_EVEX_0F2F */
1021   {
1022     { VEX_W_TABLE (EVEX_W_0F2F_P_0) },
1023     { Bad_Opcode },
1024     { VEX_W_TABLE (EVEX_W_0F2F_P_2) },
1025   },
1026   /* PREFIX_EVEX_0F51 */
1027   {
1028     { VEX_W_TABLE (EVEX_W_0F51_P_0) },
1029     { VEX_W_TABLE (EVEX_W_0F51_P_1) },
1030     { VEX_W_TABLE (EVEX_W_0F51_P_2) },
1031     { VEX_W_TABLE (EVEX_W_0F51_P_3) },
1032   },
1033   /* PREFIX_EVEX_0F58 */
1034   {
1035     { VEX_W_TABLE (EVEX_W_0F58_P_0) },
1036     { VEX_W_TABLE (EVEX_W_0F58_P_1) },
1037     { VEX_W_TABLE (EVEX_W_0F58_P_2) },
1038     { VEX_W_TABLE (EVEX_W_0F58_P_3) },
1039   },
1040   /* PREFIX_EVEX_0F59 */
1041   {
1042     { VEX_W_TABLE (EVEX_W_0F59_P_0) },
1043     { VEX_W_TABLE (EVEX_W_0F59_P_1) },
1044     { VEX_W_TABLE (EVEX_W_0F59_P_2) },
1045     { VEX_W_TABLE (EVEX_W_0F59_P_3) },
1046   },
1047   /* PREFIX_EVEX_0F5A */
1048   {
1049     { VEX_W_TABLE (EVEX_W_0F5A_P_0) },
1050     { VEX_W_TABLE (EVEX_W_0F5A_P_1) },
1051     { VEX_W_TABLE (EVEX_W_0F5A_P_2) },
1052     { VEX_W_TABLE (EVEX_W_0F5A_P_3) },
1053   },
1054   /* PREFIX_EVEX_0F5B */
1055   {
1056     { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
1057     { VEX_W_TABLE (EVEX_W_0F5B_P_1) },
1058     { VEX_W_TABLE (EVEX_W_0F5B_P_2) },
1059   },
1060   /* PREFIX_EVEX_0F5C */
1061   {
1062     { VEX_W_TABLE (EVEX_W_0F5C_P_0) },
1063     { VEX_W_TABLE (EVEX_W_0F5C_P_1) },
1064     { VEX_W_TABLE (EVEX_W_0F5C_P_2) },
1065     { VEX_W_TABLE (EVEX_W_0F5C_P_3) },
1066   },
1067   /* PREFIX_EVEX_0F5D */
1068   {
1069     { VEX_W_TABLE (EVEX_W_0F5D_P_0) },
1070     { VEX_W_TABLE (EVEX_W_0F5D_P_1) },
1071     { VEX_W_TABLE (EVEX_W_0F5D_P_2) },
1072     { VEX_W_TABLE (EVEX_W_0F5D_P_3) },
1073   },
1074   /* PREFIX_EVEX_0F5E */
1075   {
1076     { VEX_W_TABLE (EVEX_W_0F5E_P_0) },
1077     { VEX_W_TABLE (EVEX_W_0F5E_P_1) },
1078     { VEX_W_TABLE (EVEX_W_0F5E_P_2) },
1079     { VEX_W_TABLE (EVEX_W_0F5E_P_3) },
1080   },
1081   /* PREFIX_EVEX_0F5F */
1082   {
1083     { VEX_W_TABLE (EVEX_W_0F5F_P_0) },
1084     { VEX_W_TABLE (EVEX_W_0F5F_P_1) },
1085     { VEX_W_TABLE (EVEX_W_0F5F_P_2) },
1086     { VEX_W_TABLE (EVEX_W_0F5F_P_3) },
1087   },
1088   /* PREFIX_EVEX_0F62 */
1089   {
1090     { Bad_Opcode },
1091     { Bad_Opcode },
1092     { VEX_W_TABLE (EVEX_W_0F62_P_2) },
1093   },
1094   /* PREFIX_EVEX_0F66 */
1095   {
1096     { Bad_Opcode },
1097     { Bad_Opcode },
1098     { VEX_W_TABLE (EVEX_W_0F66_P_2) },
1099   },
1100   /* PREFIX_EVEX_0F6A */
1101   {
1102     { Bad_Opcode },
1103     { Bad_Opcode },
1104     { VEX_W_TABLE (EVEX_W_0F6A_P_2) },
1105   },
1106   /* PREFIX_EVEX_0F6C */
1107   {
1108     { Bad_Opcode },
1109     { Bad_Opcode },
1110     { VEX_W_TABLE (EVEX_W_0F6C_P_2) },
1111   },
1112   /* PREFIX_EVEX_0F6D */
1113   {
1114     { Bad_Opcode },
1115     { Bad_Opcode },
1116     { VEX_W_TABLE (EVEX_W_0F6D_P_2) },
1117   },
1118   /* PREFIX_EVEX_0F6E */
1119   {
1120     { Bad_Opcode },
1121     { Bad_Opcode },
1122     { VEX_W_TABLE (EVEX_W_0F6E_P_2) },
1123   },
1124   /* PREFIX_EVEX_0F6F */
1125   {
1126     { Bad_Opcode },
1127     { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
1128     { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
1129   },
1130   /* PREFIX_EVEX_0F70 */
1131   {
1132     { Bad_Opcode },
1133     { Bad_Opcode },
1134     { VEX_W_TABLE (EVEX_W_0F70_P_2) },
1135   },
1136   /* PREFIX_EVEX_0F72_REG_0 */
1137   {
1138     { Bad_Opcode },
1139     { Bad_Opcode },
1140     { "vpror%LW",       { Vex, EXx, Ib } },
1141   },
1142   /* PREFIX_EVEX_0F72_REG_1 */
1143   {
1144     { Bad_Opcode },
1145     { Bad_Opcode },
1146     { "vprol%LW",       { Vex, EXx, Ib } },
1147   },
1148   /* PREFIX_EVEX_0F72_REG_2 */
1149   {
1150     { Bad_Opcode },
1151     { Bad_Opcode },
1152     { VEX_W_TABLE (EVEX_W_0F72_R_2_P_2) },
1153   },
1154   /* PREFIX_EVEX_0F72_REG_4 */
1155   {
1156     { Bad_Opcode },
1157     { Bad_Opcode },
1158     { "vpsra%LW",       { Vex, EXx, Ib } },
1159   },
1160   /* PREFIX_EVEX_0F72_REG_6 */
1161   {
1162     { Bad_Opcode },
1163     { Bad_Opcode },
1164     { VEX_W_TABLE (EVEX_W_0F72_R_6_P_2) },
1165   },
1166   /* PREFIX_EVEX_0F73_REG_2 */
1167   {
1168     { Bad_Opcode },
1169     { Bad_Opcode },
1170     { VEX_W_TABLE (EVEX_W_0F73_R_2_P_2) },
1171   },
1172   /* PREFIX_EVEX_0F73_REG_6 */
1173   {
1174     { Bad_Opcode },
1175     { Bad_Opcode },
1176     { VEX_W_TABLE (EVEX_W_0F73_R_6_P_2) },
1177   },
1178   /* PREFIX_EVEX_0F76 */
1179   {
1180     { Bad_Opcode },
1181     { Bad_Opcode },
1182     { VEX_W_TABLE (EVEX_W_0F76_P_2) },
1183   },
1184   /* PREFIX_EVEX_0F78 */
1185   {
1186     { VEX_W_TABLE (EVEX_W_0F78_P_0) },
1187     { "vcvttss2usi",    { Gdq, EXxmm_md, EXxEVexS } },
1188     { Bad_Opcode },
1189     { "vcvttsd2usi",    { Gdq, EXxmm_mq, EXxEVexS } },
1190   },
1191   /* PREFIX_EVEX_0F79 */
1192   {
1193     { VEX_W_TABLE (EVEX_W_0F79_P_0) },
1194     { "vcvtss2usi",     { Gdq, EXxmm_md, EXxEVexR } },
1195     { Bad_Opcode },
1196     { "vcvtsd2usi",     { Gdq, EXxmm_mq, EXxEVexR } },
1197   },
1198   /* PREFIX_EVEX_0F7A */
1199   {
1200     { Bad_Opcode },
1201     { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
1202     { Bad_Opcode },
1203     { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
1204   },
1205   /* PREFIX_EVEX_0F7B */
1206   {
1207     { Bad_Opcode },
1208     { VEX_W_TABLE (EVEX_W_0F7B_P_1) },
1209     { Bad_Opcode },
1210     { VEX_W_TABLE (EVEX_W_0F7B_P_3) },
1211   },
1212   /* PREFIX_EVEX_0F7E */
1213   {
1214     { Bad_Opcode },
1215     { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
1216     { VEX_W_TABLE (EVEX_W_0F7E_P_2) },
1217   },
1218   /* PREFIX_EVEX_0F7F */
1219   {
1220     { Bad_Opcode },
1221     { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
1222     { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
1223   },
1224
1225   /* PREFIX_EVEX_0FC2 */
1226   {
1227     { VEX_W_TABLE (EVEX_W_0FC2_P_0) },
1228     { VEX_W_TABLE (EVEX_W_0FC2_P_1) },
1229     { VEX_W_TABLE (EVEX_W_0FC2_P_2) },
1230     { VEX_W_TABLE (EVEX_W_0FC2_P_3) },
1231   },
1232   /* PREFIX_EVEX_0FC6 */
1233   {
1234     { VEX_W_TABLE (EVEX_W_0FC6_P_0) },
1235     { Bad_Opcode },
1236     { VEX_W_TABLE (EVEX_W_0FC6_P_2) },
1237   },
1238   /* PREFIX_EVEX_0FD2 */
1239   {
1240     { Bad_Opcode },
1241     { Bad_Opcode },
1242     { VEX_W_TABLE (EVEX_W_0FD2_P_2) },
1243   },
1244   /* PREFIX_EVEX_0FD3 */
1245   {
1246     { Bad_Opcode },
1247     { Bad_Opcode },
1248     { VEX_W_TABLE (EVEX_W_0FD3_P_2) },
1249   },
1250   /* PREFIX_EVEX_0FD4 */
1251   {
1252     { Bad_Opcode },
1253     { Bad_Opcode },
1254     { VEX_W_TABLE (EVEX_W_0FD4_P_2) },
1255   },
1256   /* PREFIX_EVEX_0FD6 */
1257   {
1258     { Bad_Opcode },
1259     { Bad_Opcode },
1260     { VEX_W_TABLE (EVEX_W_0FD6_P_2) },
1261   },
1262   /* PREFIX_EVEX_0FDB */
1263   {
1264     { Bad_Opcode },
1265     { Bad_Opcode },
1266     { "vpand%LW",       { XM, Vex, EXx } },
1267   },
1268   /* PREFIX_EVEX_0FDF */
1269   {
1270     { Bad_Opcode },
1271     { Bad_Opcode },
1272     { "vpandn%LW",      { XM, Vex, EXx } },
1273   },
1274   /* PREFIX_EVEX_0FE2 */
1275   {
1276     { Bad_Opcode },
1277     { Bad_Opcode },
1278     { "vpsra%LW",       { XM, Vex, EXxmm } },
1279   },
1280   /* PREFIX_EVEX_0FE6 */
1281   {
1282     { Bad_Opcode },
1283     { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
1284     { VEX_W_TABLE (EVEX_W_0FE6_P_2) },
1285     { VEX_W_TABLE (EVEX_W_0FE6_P_3) },
1286   },
1287   /* PREFIX_EVEX_0FE7 */
1288   {
1289     { Bad_Opcode },
1290     { Bad_Opcode },
1291     { VEX_W_TABLE (EVEX_W_0FE7_P_2) },
1292   },
1293   /* PREFIX_EVEX_0FEB */
1294   {
1295     { Bad_Opcode },
1296     { Bad_Opcode },
1297     { "vpor%LW",        { XM, Vex, EXx } },
1298   },
1299   /* PREFIX_EVEX_0FEF */
1300   {
1301     { Bad_Opcode },
1302     { Bad_Opcode },
1303     { "vpxor%LW",       { XM, Vex, EXx } },
1304   },
1305   /* PREFIX_EVEX_0FF2 */
1306   {
1307     { Bad_Opcode },
1308     { Bad_Opcode },
1309     { VEX_W_TABLE (EVEX_W_0FF2_P_2) },
1310   },
1311   /* PREFIX_EVEX_0FF3 */
1312   {
1313     { Bad_Opcode },
1314     { Bad_Opcode },
1315     { VEX_W_TABLE (EVEX_W_0FF3_P_2) },
1316   },
1317   /* PREFIX_EVEX_0FF4 */
1318   {
1319     { Bad_Opcode },
1320     { Bad_Opcode },
1321     { VEX_W_TABLE (EVEX_W_0FF4_P_2) },
1322   },
1323   /* PREFIX_EVEX_0FFA */
1324   {
1325     { Bad_Opcode },
1326     { Bad_Opcode },
1327     { VEX_W_TABLE (EVEX_W_0FFA_P_2) },
1328   },
1329   /* PREFIX_EVEX_0FFB */
1330   {
1331     { Bad_Opcode },
1332     { Bad_Opcode },
1333     { VEX_W_TABLE (EVEX_W_0FFB_P_2) },
1334   },
1335   /* PREFIX_EVEX_0FFE */
1336   {
1337     { Bad_Opcode },
1338     { Bad_Opcode },
1339     { VEX_W_TABLE (EVEX_W_0FFE_P_2) },
1340   },
1341
1342   /* PREFIX_EVEX_0F380C */
1343   {
1344     { Bad_Opcode },
1345     { Bad_Opcode },
1346     { VEX_W_TABLE (EVEX_W_0F380C_P_2) },
1347   },
1348   /* PREFIX_EVEX_0F380D */
1349   {
1350     { Bad_Opcode },
1351     { Bad_Opcode },
1352     { VEX_W_TABLE (EVEX_W_0F380D_P_2) },
1353   },
1354   /* PREFIX_EVEX_0F3811 */
1355   {
1356     { Bad_Opcode },
1357     { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
1358   },
1359   /* PREFIX_EVEX_0F3812 */
1360   {
1361     { Bad_Opcode },
1362     { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
1363   },
1364   /* PREFIX_EVEX_0F3813 */
1365   {
1366     { Bad_Opcode },
1367     { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
1368     { VEX_W_TABLE (EVEX_W_0F3813_P_2) },
1369   },
1370   /* PREFIX_EVEX_0F3814 */
1371   {
1372     { Bad_Opcode },
1373     { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
1374     { "vprorv%LW",      { XM, Vex, EXx } },
1375   },
1376   /* PREFIX_EVEX_0F3815 */
1377   {
1378     { Bad_Opcode },
1379     { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
1380     { "vprolv%LW",      { XM, Vex, EXx } },
1381   },
1382   /* PREFIX_EVEX_0F3816 */
1383   {
1384     { Bad_Opcode },
1385     { Bad_Opcode },
1386     { "vpermp%XW",      { XM, Vex, EXx } },
1387   },
1388   /* PREFIX_EVEX_0F3818 */
1389   {
1390     { Bad_Opcode },
1391     { Bad_Opcode },
1392     { VEX_W_TABLE (EVEX_W_0F3818_P_2) },
1393   },
1394   /* PREFIX_EVEX_0F3819 */
1395   {
1396     { Bad_Opcode },
1397     { Bad_Opcode },
1398     { VEX_W_TABLE (EVEX_W_0F3819_P_2) },
1399   },
1400   /* PREFIX_EVEX_0F381A */
1401   {
1402     { Bad_Opcode },
1403     { Bad_Opcode },
1404     { VEX_W_TABLE (EVEX_W_0F381A_P_2) },
1405   },
1406   /* PREFIX_EVEX_0F381B */
1407   {
1408     { Bad_Opcode },
1409     { Bad_Opcode },
1410     { VEX_W_TABLE (EVEX_W_0F381B_P_2) },
1411   },
1412   /* PREFIX_EVEX_0F381E */
1413   {
1414     { Bad_Opcode },
1415     { Bad_Opcode },
1416     { VEX_W_TABLE (EVEX_W_0F381E_P_2) },
1417   },
1418   /* PREFIX_EVEX_0F381F */
1419   {
1420     { Bad_Opcode },
1421     { Bad_Opcode },
1422     { VEX_W_TABLE (EVEX_W_0F381F_P_2) },
1423   },
1424   /* PREFIX_EVEX_0F3821 */
1425   {
1426     { Bad_Opcode },
1427     { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
1428     { "vpmovsxbd",      { XM, EXxmmqd } },
1429   },
1430   /* PREFIX_EVEX_0F3822 */
1431   {
1432     { Bad_Opcode },
1433     { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
1434     { "vpmovsxbq",      { XM, EXxmmdw } },
1435   },
1436   /* PREFIX_EVEX_0F3823 */
1437   {
1438     { Bad_Opcode },
1439     { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
1440     { "vpmovsxwd",      { XM, EXxmmq } },
1441   },
1442   /* PREFIX_EVEX_0F3824 */
1443   {
1444     { Bad_Opcode },
1445     { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
1446     { "vpmovsxwq",      { XM, EXxmmqd } },
1447   },
1448   /* PREFIX_EVEX_0F3825 */
1449   {
1450     { Bad_Opcode },
1451     { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
1452     { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
1453   },
1454   /* PREFIX_EVEX_0F3827 */
1455   {
1456     { Bad_Opcode },
1457     { "vptestnm%LW",    { XMask, Vex, EXx } },
1458     { "vptestm%LW",     { XMask, Vex, EXx } },
1459   },
1460   /* PREFIX_EVEX_0F3828 */
1461   {
1462     { Bad_Opcode },
1463     { Bad_Opcode },
1464     { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
1465   },
1466   /* PREFIX_EVEX_0F3829 */
1467   {
1468     { Bad_Opcode },
1469     { Bad_Opcode },
1470     { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
1471   },
1472   /* PREFIX_EVEX_0F382A */
1473   {
1474     { Bad_Opcode },
1475     { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
1476     { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
1477   },
1478   /* PREFIX_EVEX_0F382C */
1479   {
1480     { Bad_Opcode },
1481     { Bad_Opcode },
1482     { "vscalefp%XW",    { XM, Vex, EXx, EXxEVexR } },
1483   },
1484   /* PREFIX_EVEX_0F382D */
1485   {
1486     { Bad_Opcode },
1487     { Bad_Opcode },
1488     { "vscalefs%XW",    { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1489   },
1490   /* PREFIX_EVEX_0F3831 */
1491   {
1492     { Bad_Opcode },
1493     { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
1494     { "vpmovzxbd",      { XM, EXxmmqd } },
1495   },
1496   /* PREFIX_EVEX_0F3832 */
1497   {
1498     { Bad_Opcode },
1499     { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
1500     { "vpmovzxbq",      { XM, EXxmmdw } },
1501   },
1502   /* PREFIX_EVEX_0F3833 */
1503   {
1504     { Bad_Opcode },
1505     { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
1506     { "vpmovzxwd",      { XM, EXxmmq } },
1507   },
1508   /* PREFIX_EVEX_0F3834 */
1509   {
1510     { Bad_Opcode },
1511     { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
1512     { "vpmovzxwq",      { XM, EXxmmqd } },
1513   },
1514   /* PREFIX_EVEX_0F3835 */
1515   {
1516     { Bad_Opcode },
1517     { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
1518     { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
1519   },
1520   /* PREFIX_EVEX_0F3836 */
1521   {
1522     { Bad_Opcode },
1523     { Bad_Opcode },
1524     { "vperm%LW",       { XM, Vex, EXx } },
1525   },
1526   /* PREFIX_EVEX_0F3837 */
1527   {
1528     { Bad_Opcode },
1529     { Bad_Opcode },
1530     { VEX_W_TABLE (EVEX_W_0F3837_P_2) },
1531   },
1532   /* PREFIX_EVEX_0F3839 */
1533   {
1534     { Bad_Opcode },
1535     { Bad_Opcode },
1536     { "vpmins%LW",      { XM, Vex, EXx } },
1537   },
1538   /* PREFIX_EVEX_0F383A */
1539   {
1540     { Bad_Opcode },
1541     { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
1542   },
1543   /* PREFIX_EVEX_0F383B */
1544   {
1545     { Bad_Opcode },
1546     { Bad_Opcode },
1547     { "vpminu%LW",      { XM, Vex, EXx } },
1548   },
1549   /* PREFIX_EVEX_0F383D */
1550   {
1551     { Bad_Opcode },
1552     { Bad_Opcode },
1553     { "vpmaxs%LW",      { XM, Vex, EXx } },
1554   },
1555   /* PREFIX_EVEX_0F383F */
1556   {
1557     { Bad_Opcode },
1558     { Bad_Opcode },
1559     { "vpmaxu%LW",      { XM, Vex, EXx } },
1560   },
1561   /* PREFIX_EVEX_0F3840 */
1562   {
1563     { Bad_Opcode },
1564     { Bad_Opcode },
1565     { VEX_W_TABLE (EVEX_W_0F3840_P_2) },
1566   },
1567   /* PREFIX_EVEX_0F3842 */
1568   {
1569     { Bad_Opcode },
1570     { Bad_Opcode },
1571     { "vgetexpp%XW",    { XM, EXx, EXxEVexS } },
1572   },
1573   /* PREFIX_EVEX_0F3843 */
1574   {
1575     { Bad_Opcode },
1576     { Bad_Opcode },
1577     { "vgetexps%XW",    { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
1578   },
1579   /* PREFIX_EVEX_0F3844 */
1580   {
1581     { Bad_Opcode },
1582     { Bad_Opcode },
1583     { "vplzcnt%LW",     { XM, EXx } },
1584   },
1585   /* PREFIX_EVEX_0F3845 */
1586   {
1587     { Bad_Opcode },
1588     { Bad_Opcode },
1589     { "vpsrlv%LW",      { XM, Vex, EXx } },
1590   },
1591   /* PREFIX_EVEX_0F3846 */
1592   {
1593     { Bad_Opcode },
1594     { Bad_Opcode },
1595     { "vpsrav%LW",      { XM, Vex, EXx } },
1596   },
1597   /* PREFIX_EVEX_0F3847 */
1598   {
1599     { Bad_Opcode },
1600     { Bad_Opcode },
1601     { "vpsllv%LW",      { XM, Vex, EXx } },
1602   },
1603   /* PREFIX_EVEX_0F384C */
1604   {
1605     { Bad_Opcode },
1606     { Bad_Opcode },
1607     { "vrcp14p%XW",     { XM, EXx } },
1608   },
1609   /* PREFIX_EVEX_0F384D */
1610   {
1611     { Bad_Opcode },
1612     { Bad_Opcode },
1613     { "vrcp14s%XW",     { XMScalar, VexScalar, EXxmm_mdq } },
1614   },
1615   /* PREFIX_EVEX_0F384E */
1616   {
1617     { Bad_Opcode },
1618     { Bad_Opcode },
1619     { "vrsqrt14p%XW",   { XM, EXx } },
1620   },
1621   /* PREFIX_EVEX_0F384F */
1622   {
1623     { Bad_Opcode },
1624     { Bad_Opcode },
1625     { "vrsqrt14s%XW",   { XMScalar, VexScalar, EXxmm_mdq } },
1626   },
1627   /* PREFIX_EVEX_0F3858 */
1628   {
1629     { Bad_Opcode },
1630     { Bad_Opcode },
1631     { VEX_W_TABLE (EVEX_W_0F3858_P_2) },
1632   },
1633   /* PREFIX_EVEX_0F3859 */
1634   {
1635     { Bad_Opcode },
1636     { Bad_Opcode },
1637     { VEX_W_TABLE (EVEX_W_0F3859_P_2) },
1638   },
1639   /* PREFIX_EVEX_0F385A */
1640   {
1641     { Bad_Opcode },
1642     { Bad_Opcode },
1643     { VEX_W_TABLE (EVEX_W_0F385A_P_2) },
1644   },
1645   /* PREFIX_EVEX_0F385B */
1646   {
1647     { Bad_Opcode },
1648     { Bad_Opcode },
1649     { VEX_W_TABLE (EVEX_W_0F385B_P_2) },
1650   },
1651   /* PREFIX_EVEX_0F3864 */
1652   {
1653     { Bad_Opcode },
1654     { Bad_Opcode },
1655     { "vpblendm%LW",    { XM, Vex, EXx } },
1656   },
1657   /* PREFIX_EVEX_0F3865 */
1658   {
1659     { Bad_Opcode },
1660     { Bad_Opcode },
1661     { "vblendmp%XW",    { XM, Vex, EXx } },
1662   },
1663   /* PREFIX_EVEX_0F3876 */
1664   {
1665     { Bad_Opcode },
1666     { Bad_Opcode },
1667     { "vpermi2%LW",     { XM, Vex, EXx } },
1668   },
1669   /* PREFIX_EVEX_0F3877 */
1670   {
1671     { Bad_Opcode },
1672     { Bad_Opcode },
1673     { "vpermi2p%XW",    { XM, Vex, EXx } },
1674   },
1675   /* PREFIX_EVEX_0F387C */
1676   {
1677     { Bad_Opcode },
1678     { Bad_Opcode },
1679     { "vpbroadcast%LW", { XM, Rdq } },
1680   },
1681   /* PREFIX_EVEX_0F387E */
1682   {
1683     { Bad_Opcode },
1684     { Bad_Opcode },
1685     { "vpermt2%LW",     { XM, Vex, EXx } },
1686   },
1687   /* PREFIX_EVEX_0F387F */
1688   {
1689     { Bad_Opcode },
1690     { Bad_Opcode },
1691     { "vpermt2p%XW",    { XM, Vex, EXx } },
1692   },
1693   /* PREFIX_EVEX_0F3888 */
1694   {
1695     { Bad_Opcode },
1696     { Bad_Opcode },
1697     { "vexpandp%XW",    { XM, EXEvexXGscat } },
1698   },
1699   /* PREFIX_EVEX_0F3889 */
1700   {
1701     { Bad_Opcode },
1702     { Bad_Opcode },
1703     { "vpexpand%LW",    { XM, EXEvexXGscat } },
1704   },
1705   /* PREFIX_EVEX_0F388A */
1706   {
1707     { Bad_Opcode },
1708     { Bad_Opcode },
1709     { "vcompressp%XW",  { EXEvexXGscat, XM } },
1710   },
1711   /* PREFIX_EVEX_0F388B */
1712   {
1713     { Bad_Opcode },
1714     { Bad_Opcode },
1715     { "vpcompress%LW",  { EXEvexXGscat, XM } },
1716   },
1717   /* PREFIX_EVEX_0F3890 */
1718   {
1719     { Bad_Opcode },
1720     { Bad_Opcode },
1721     { "vpgatherd%LW",   { XM, MVexVSIBDWpX } },
1722   },
1723   /* PREFIX_EVEX_0F3891 */
1724   {
1725     { Bad_Opcode },
1726     { Bad_Opcode },
1727     { VEX_W_TABLE (EVEX_W_0F3891_P_2) },
1728   },
1729   /* PREFIX_EVEX_0F3892 */
1730   {
1731     { Bad_Opcode },
1732     { Bad_Opcode },
1733     { "vgatherdp%XW",   { XM, MVexVSIBDWpX} },
1734   },
1735   /* PREFIX_EVEX_0F3893 */
1736   {
1737     { Bad_Opcode },
1738     { Bad_Opcode },
1739     { VEX_W_TABLE (EVEX_W_0F3893_P_2) },
1740   },
1741   /* PREFIX_EVEX_0F3896 */
1742   {
1743     { Bad_Opcode },
1744     { Bad_Opcode },
1745     { "vfmaddsub132p%XW",       { XM, Vex, EXx, EXxEVexR } },
1746   },
1747   /* PREFIX_EVEX_0F3897 */
1748   {
1749     { Bad_Opcode },
1750     { Bad_Opcode },
1751     { "vfmsubadd132p%XW",       { XM, Vex, EXx, EXxEVexR } },
1752   },
1753   /* PREFIX_EVEX_0F3898 */
1754   {
1755     { Bad_Opcode },
1756     { Bad_Opcode },
1757     { "vfmadd132p%XW",  { XM, Vex, EXx, EXxEVexR } },
1758   },
1759   /* PREFIX_EVEX_0F3899 */
1760   {
1761     { Bad_Opcode },
1762     { Bad_Opcode },
1763     { "vfmadd132s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1764   },
1765   /* PREFIX_EVEX_0F389A */
1766   {
1767     { Bad_Opcode },
1768     { Bad_Opcode },
1769     { "vfmsub132p%XW",  { XM, Vex, EXx, EXxEVexR } },
1770   },
1771   /* PREFIX_EVEX_0F389B */
1772   {
1773     { Bad_Opcode },
1774     { Bad_Opcode },
1775     { "vfmsub132s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1776   },
1777   /* PREFIX_EVEX_0F389C */
1778   {
1779     { Bad_Opcode },
1780     { Bad_Opcode },
1781     { "vfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR } },
1782   },
1783   /* PREFIX_EVEX_0F389D */
1784   {
1785     { Bad_Opcode },
1786     { Bad_Opcode },
1787     { "vfnmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1788   },
1789   /* PREFIX_EVEX_0F389E */
1790   {
1791     { Bad_Opcode },
1792     { Bad_Opcode },
1793     { "vfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR } },
1794   },
1795   /* PREFIX_EVEX_0F389F */
1796   {
1797     { Bad_Opcode },
1798     { Bad_Opcode },
1799     { "vfnmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1800   },
1801   /* PREFIX_EVEX_0F38A0 */
1802   {
1803     { Bad_Opcode },
1804     { Bad_Opcode },
1805     { "vpscatterd%LW",  { MVexVSIBDWpX, XM } },
1806   },
1807   /* PREFIX_EVEX_0F38A1 */
1808   {
1809     { Bad_Opcode },
1810     { Bad_Opcode },
1811     { VEX_W_TABLE (EVEX_W_0F38A1_P_2) },
1812   },
1813   /* PREFIX_EVEX_0F38A2 */
1814   {
1815     { Bad_Opcode },
1816     { Bad_Opcode },
1817     { "vscatterdp%XW",  { MVexVSIBDWpX, XM } },
1818   },
1819   /* PREFIX_EVEX_0F38A3 */
1820   {
1821     { Bad_Opcode },
1822     { Bad_Opcode },
1823     { VEX_W_TABLE (EVEX_W_0F38A3_P_2) },
1824   },
1825   /* PREFIX_EVEX_0F38A6 */
1826   {
1827     { Bad_Opcode },
1828     { Bad_Opcode },
1829     { "vfmaddsub213p%XW",       { XM, Vex, EXx, EXxEVexR } },
1830   },
1831   /* PREFIX_EVEX_0F38A7 */
1832   {
1833     { Bad_Opcode },
1834     { Bad_Opcode },
1835     { "vfmsubadd213p%XW",       { XM, Vex, EXx, EXxEVexR } },
1836   },
1837   /* PREFIX_EVEX_0F38A8 */
1838   {
1839     { Bad_Opcode },
1840     { Bad_Opcode },
1841     { "vfmadd213p%XW",  { XM, Vex, EXx, EXxEVexR } },
1842   },
1843   /* PREFIX_EVEX_0F38A9 */
1844   {
1845     { Bad_Opcode },
1846     { Bad_Opcode },
1847     { "vfmadd213s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1848   },
1849   /* PREFIX_EVEX_0F38AA */
1850   {
1851     { Bad_Opcode },
1852     { Bad_Opcode },
1853     { "vfmsub213p%XW",  { XM, Vex, EXx, EXxEVexR } },
1854   },
1855   /* PREFIX_EVEX_0F38AB */
1856   {
1857     { Bad_Opcode },
1858     { Bad_Opcode },
1859     { "vfmsub213s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1860   },
1861   /* PREFIX_EVEX_0F38AC */
1862   {
1863     { Bad_Opcode },
1864     { Bad_Opcode },
1865     { "vfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR } },
1866   },
1867   /* PREFIX_EVEX_0F38AD */
1868   {
1869     { Bad_Opcode },
1870     { Bad_Opcode },
1871     { "vfnmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1872   },
1873   /* PREFIX_EVEX_0F38AE */
1874   {
1875     { Bad_Opcode },
1876     { Bad_Opcode },
1877     { "vfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR } },
1878   },
1879   /* PREFIX_EVEX_0F38AF */
1880   {
1881     { Bad_Opcode },
1882     { Bad_Opcode },
1883     { "vfnmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1884   },
1885   /* PREFIX_EVEX_0F38B6 */
1886   {
1887     { Bad_Opcode },
1888     { Bad_Opcode },
1889     { "vfmaddsub231p%XW",       { XM, Vex, EXx, EXxEVexR } },
1890   },
1891   /* PREFIX_EVEX_0F38B7 */
1892   {
1893     { Bad_Opcode },
1894     { Bad_Opcode },
1895     { "vfmsubadd231p%XW",       { XM, Vex, EXx, EXxEVexR } },
1896   },
1897   /* PREFIX_EVEX_0F38B8 */
1898   {
1899     { Bad_Opcode },
1900     { Bad_Opcode },
1901     { "vfmadd231p%XW",  { XM, Vex, EXx, EXxEVexR } },
1902   },
1903   /* PREFIX_EVEX_0F38B9 */
1904   {
1905     { Bad_Opcode },
1906     { Bad_Opcode },
1907     { "vfmadd231s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1908   },
1909   /* PREFIX_EVEX_0F38BA */
1910   {
1911     { Bad_Opcode },
1912     { Bad_Opcode },
1913     { "vfmsub231p%XW",  { XM, Vex, EXx, EXxEVexR } },
1914   },
1915   /* PREFIX_EVEX_0F38BB */
1916   {
1917     { Bad_Opcode },
1918     { Bad_Opcode },
1919     { "vfmsub231s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1920   },
1921   /* PREFIX_EVEX_0F38BC */
1922   {
1923     { Bad_Opcode },
1924     { Bad_Opcode },
1925     { "vfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR } },
1926   },
1927   /* PREFIX_EVEX_0F38BD */
1928   {
1929     { Bad_Opcode },
1930     { Bad_Opcode },
1931     { "vfnmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1932   },
1933   /* PREFIX_EVEX_0F38BE */
1934   {
1935     { Bad_Opcode },
1936     { Bad_Opcode },
1937     { "vfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR } },
1938   },
1939   /* PREFIX_EVEX_0F38BF */
1940   {
1941     { Bad_Opcode },
1942     { Bad_Opcode },
1943     { "vfnmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1944   },
1945   /* PREFIX_EVEX_0F38C4 */
1946   {
1947     { Bad_Opcode },
1948     { Bad_Opcode },
1949     { "vpconflict%LW",  { XM, EXx } },
1950   },
1951   /* PREFIX_EVEX_0F38C6_REG_1 */
1952   {
1953     { Bad_Opcode },
1954     { Bad_Opcode },
1955     { "vgatherpf0dp%XW",  { MVexVSIBDWpX } },
1956   },
1957   /* PREFIX_EVEX_0F38C6_REG_2 */
1958   {
1959     { Bad_Opcode },
1960     { Bad_Opcode },
1961     { "vgatherpf1dp%XW",  { MVexVSIBDWpX } },
1962   },
1963   /* PREFIX_EVEX_0F38C6_REG_5 */
1964   {
1965     { Bad_Opcode },
1966     { Bad_Opcode },
1967     { "vscatterpf0dp%XW",  { MVexVSIBDWpX } },
1968   },
1969   /* PREFIX_EVEX_0F38C6_REG_6 */
1970   {
1971     { Bad_Opcode },
1972     { Bad_Opcode },
1973     { "vscatterpf1dp%XW",  { MVexVSIBDWpX } },
1974   },
1975   /* PREFIX_EVEX_0F38C7_REG_1 */
1976   {
1977     { Bad_Opcode },
1978     { Bad_Opcode },
1979     { VEX_W_TABLE (EVEX_W_0F38C7_R_1_P_2) },
1980   },
1981   /* PREFIX_EVEX_0F38C7_REG_2 */
1982   {
1983     { Bad_Opcode },
1984     { Bad_Opcode },
1985     { VEX_W_TABLE (EVEX_W_0F38C7_R_2_P_2) },
1986   },
1987   /* PREFIX_EVEX_0F38C7_REG_5 */
1988   {
1989     { Bad_Opcode },
1990     { Bad_Opcode },
1991     { VEX_W_TABLE (EVEX_W_0F38C7_R_5_P_2) },
1992   },
1993   /* PREFIX_EVEX_0F38C7_REG_6 */
1994   {
1995     { Bad_Opcode },
1996     { Bad_Opcode },
1997     { VEX_W_TABLE (EVEX_W_0F38C7_R_6_P_2) },
1998   },
1999   /* PREFIX_EVEX_0F38C8 */
2000   {
2001     { Bad_Opcode },
2002     { Bad_Opcode },
2003     { "vexp2p%XW",        { XM, EXx, EXxEVexS } },
2004   },
2005   /* PREFIX_EVEX_0F38CA */
2006   {
2007     { Bad_Opcode },
2008     { Bad_Opcode },
2009     { "vrcp28p%XW",       { XM, EXx, EXxEVexS } },
2010   },
2011   /* PREFIX_EVEX_0F38CB */
2012   {
2013     { Bad_Opcode },
2014     { Bad_Opcode },
2015     { "vrcp28s%XW",       { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
2016   },
2017   /* PREFIX_EVEX_0F38CC */
2018   {
2019     { Bad_Opcode },
2020     { Bad_Opcode },
2021     { "vrsqrt28p%XW",     { XM, EXx, EXxEVexS } },
2022   },
2023   /* PREFIX_EVEX_0F38CD */
2024   {
2025     { Bad_Opcode },
2026     { Bad_Opcode },
2027     { "vrsqrt28s%XW",     { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
2028   },
2029   /* PREFIX_EVEX_0F3A00 */
2030   {
2031     { Bad_Opcode },
2032     { Bad_Opcode },
2033     { VEX_W_TABLE (EVEX_W_0F3A00_P_2) },
2034   },
2035   /* PREFIX_EVEX_0F3A01 */
2036   {
2037     { Bad_Opcode },
2038     { Bad_Opcode },
2039     { VEX_W_TABLE (EVEX_W_0F3A01_P_2) },
2040   },
2041   /* PREFIX_EVEX_0F3A03 */
2042   {
2043     { Bad_Opcode },
2044     { Bad_Opcode },
2045     { "valign%LW",      { XM, Vex, EXx, Ib } },
2046   },
2047   /* PREFIX_EVEX_0F3A04 */
2048   {
2049     { Bad_Opcode },
2050     { Bad_Opcode },
2051     { VEX_W_TABLE (EVEX_W_0F3A04_P_2) },
2052   },
2053   /* PREFIX_EVEX_0F3A05 */
2054   {
2055     { Bad_Opcode },
2056     { Bad_Opcode },
2057     { VEX_W_TABLE (EVEX_W_0F3A05_P_2) },
2058   },
2059   /* PREFIX_EVEX_0F3A08 */
2060   {
2061     { Bad_Opcode },
2062     { Bad_Opcode },
2063     { VEX_W_TABLE (EVEX_W_0F3A08_P_2) },
2064   },
2065   /* PREFIX_EVEX_0F3A09 */
2066   {
2067     { Bad_Opcode },
2068     { Bad_Opcode },
2069     { VEX_W_TABLE (EVEX_W_0F3A09_P_2) },
2070   },
2071   /* PREFIX_EVEX_0F3A0A */
2072   {
2073     { Bad_Opcode },
2074     { Bad_Opcode },
2075     { VEX_W_TABLE (EVEX_W_0F3A0A_P_2) },
2076   },
2077   /* PREFIX_EVEX_0F3A0B */
2078   {
2079     { Bad_Opcode },
2080     { Bad_Opcode },
2081     { VEX_W_TABLE (EVEX_W_0F3A0B_P_2) },
2082   },
2083   /* PREFIX_EVEX_0F3A17 */
2084   {
2085     { Bad_Opcode },
2086     { Bad_Opcode },
2087     { "vextractps",     { Edqd, XMM, Ib } },
2088   },
2089   /* PREFIX_EVEX_0F3A18 */
2090   {
2091     { Bad_Opcode },
2092     { Bad_Opcode },
2093     { VEX_W_TABLE (EVEX_W_0F3A18_P_2) },
2094   },
2095   /* PREFIX_EVEX_0F3A19 */
2096   {
2097     { Bad_Opcode },
2098     { Bad_Opcode },
2099     { VEX_W_TABLE (EVEX_W_0F3A19_P_2) },
2100   },
2101   /* PREFIX_EVEX_0F3A1A */
2102   {
2103     { Bad_Opcode },
2104     { Bad_Opcode },
2105     { VEX_W_TABLE (EVEX_W_0F3A1A_P_2) },
2106   },
2107   /* PREFIX_EVEX_0F3A1B */
2108   {
2109     { Bad_Opcode },
2110     { Bad_Opcode },
2111     { VEX_W_TABLE (EVEX_W_0F3A1B_P_2) },
2112   },
2113   /* PREFIX_EVEX_0F3A1D */
2114   {
2115     { Bad_Opcode },
2116     { Bad_Opcode },
2117     { VEX_W_TABLE (EVEX_W_0F3A1D_P_2) },
2118   },
2119   /* PREFIX_EVEX_0F3A1E */
2120   {
2121     { Bad_Opcode },
2122     { Bad_Opcode },
2123     { "vpcmpu%LW",      { XMask, Vex, EXx, VPCMP } },
2124   },
2125   /* PREFIX_EVEX_0F3A1F */
2126   {
2127     { Bad_Opcode },
2128     { Bad_Opcode },
2129     { "vpcmp%LW",       { XMask, Vex, EXx, VPCMP } },
2130   },
2131   /* PREFIX_EVEX_0F3A21 */
2132   {
2133     { Bad_Opcode },
2134     { Bad_Opcode },
2135     { VEX_W_TABLE (EVEX_W_0F3A21_P_2) },
2136   },
2137   /* PREFIX_EVEX_0F3A23 */
2138   {
2139     { Bad_Opcode },
2140     { Bad_Opcode },
2141     { VEX_W_TABLE (EVEX_W_0F3A23_P_2) },
2142   },
2143   /* PREFIX_EVEX_0F3A25 */
2144   {
2145     { Bad_Opcode },
2146     { Bad_Opcode },
2147     { "vpternlog%LW",   { XM, Vex, EXx, Ib } },
2148   },
2149   /* PREFIX_EVEX_0F3A26 */
2150   {
2151     { Bad_Opcode },
2152     { Bad_Opcode },
2153     { "vgetmantp%XW",   { XM, EXx, EXxEVexS, Ib } },
2154   },
2155   /* PREFIX_EVEX_0F3A27 */
2156   {
2157     { Bad_Opcode },
2158     { Bad_Opcode },
2159     { "vgetmants%XW",   { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib } },
2160   },
2161   /* PREFIX_EVEX_0F3A38 */
2162   {
2163     { Bad_Opcode },
2164     { Bad_Opcode },
2165     { VEX_W_TABLE (EVEX_W_0F3A38_P_2) },
2166   },
2167   /* PREFIX_EVEX_0F3A39 */
2168   {
2169     { Bad_Opcode },
2170     { Bad_Opcode },
2171     { VEX_W_TABLE (EVEX_W_0F3A39_P_2) },
2172   },
2173   /* PREFIX_EVEX_0F3A3A */
2174   {
2175     { Bad_Opcode },
2176     { Bad_Opcode },
2177     { VEX_W_TABLE (EVEX_W_0F3A3A_P_2) },
2178   },
2179   /* PREFIX_EVEX_0F3A3B */
2180   {
2181     { Bad_Opcode },
2182     { Bad_Opcode },
2183     { VEX_W_TABLE (EVEX_W_0F3A3B_P_2) },
2184   },
2185   /* PREFIX_EVEX_0F3A43 */
2186   {
2187     { Bad_Opcode },
2188     { Bad_Opcode },
2189     { VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
2190   },
2191   /* PREFIX_EVEX_0F3A54 */
2192   {
2193     { Bad_Opcode },
2194     { Bad_Opcode },
2195     { "vfixupimmp%XW",  { XM, Vex, EXx, EXxEVexS, Ib } },
2196   },
2197   /* PREFIX_EVEX_0F3A55 */
2198   {
2199     { Bad_Opcode },
2200     { Bad_Opcode },
2201     { "vfixupimms%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib } },
2202   },
2203 #endif /* NEED_PREFIX_TABLE */
2204
2205 #ifdef NEED_VEX_W_TABLE
2206   /* EVEX_W_0F10_P_0 */
2207   {
2208     { "vmovups",        { XM, EXEvexXNoBcst } },
2209   },
2210   /* EVEX_W_0F10_P_1_M_0 */
2211   {
2212     { "vmovss", { XMScalar, EXdScalar } },
2213   },
2214   /* EVEX_W_0F10_P_1_M_1 */
2215   {
2216     { "vmovss", { XMScalar, VexScalar, EXxmm_md } },
2217   },
2218   /* EVEX_W_0F10_P_2 */
2219   {
2220     { Bad_Opcode },
2221     { "vmovupd",        { XM, EXEvexXNoBcst } },
2222   },
2223   /* EVEX_W_0F10_P_3_M_0 */
2224   {
2225     { Bad_Opcode },
2226     { "vmovsd", { XMScalar, EXqScalar } },
2227   },
2228   /* EVEX_W_0F10_P_3_M_1 */
2229   {
2230     { Bad_Opcode },
2231     { "vmovsd", { XMScalar, VexScalar, EXxmm_mq } },
2232   },
2233   /* EVEX_W_0F11_P_0 */
2234   {
2235     { "vmovups",        { EXxS, XM } },
2236   },
2237   /* EVEX_W_0F11_P_1_M_0 */
2238   {
2239     { "vmovss", { EXdScalarS, XMScalar } },
2240   },
2241   /* EVEX_W_0F11_P_1_M_1 */
2242   {
2243     { "vmovss", { EXxS, Vex, XMScalar } },
2244   },
2245   /* EVEX_W_0F11_P_2 */
2246   {
2247     { Bad_Opcode },
2248     { "vmovupd",        { EXxS, XM } },
2249   },
2250   /* EVEX_W_0F11_P_3_M_0 */
2251   {
2252     { Bad_Opcode },
2253     { "vmovsd", { EXqScalarS, XMScalar } },
2254   },
2255   /* EVEX_W_0F11_P_3_M_1 */
2256   {
2257     { Bad_Opcode },
2258     { "vmovsd", { EXxS, Vex, XMScalar } },
2259   },
2260   /* EVEX_W_0F12_P_0_M_0 */
2261   {
2262     { "vmovlps",        { XMM, Vex, EXxmm_mq } },
2263   },
2264   /* EVEX_W_0F12_P_0_M_1 */
2265   {
2266     { "vmovhlps",       { XMM, Vex, EXxmm_mq } },
2267   },
2268   /* EVEX_W_0F12_P_1 */
2269   {
2270     { "vmovsldup",      { XM, EXEvexXNoBcst } },
2271   },
2272   /* EVEX_W_0F12_P_2 */
2273   {
2274     { Bad_Opcode },
2275     { "vmovlpd",        { XMM, Vex, EXxmm_mq } },
2276   },
2277   /* EVEX_W_0F12_P_3 */
2278   {
2279     { Bad_Opcode },
2280     { "vmovddup",       { XM, EXymmq } },
2281   },
2282   /* EVEX_W_0F13_P_0 */
2283   {
2284     { "vmovlps",        { EXxmm_mq, XMM } },
2285   },
2286   /* EVEX_W_0F13_P_2 */
2287   {
2288     { Bad_Opcode },
2289     { "vmovlpd",        { EXxmm_mq, XMM } },
2290   },
2291   /* EVEX_W_0F14_P_0 */
2292   {
2293     { "vunpcklps",      { XM, Vex, EXx } },
2294   },
2295   /* EVEX_W_0F14_P_2 */
2296   {
2297     { Bad_Opcode },
2298     { "vunpcklpd",      { XM, Vex, EXx } },
2299   },
2300   /* EVEX_W_0F15_P_0 */
2301   {
2302     { "vunpckhps",      { XM, Vex, EXx } },
2303   },
2304   /* EVEX_W_0F15_P_2 */
2305   {
2306     { Bad_Opcode },
2307     { "vunpckhpd",      { XM, Vex, EXx } },
2308   },
2309   /* EVEX_W_0F16_P_0_M_0 */
2310   {
2311     { "vmovhps",        { XMM, Vex, EXxmm_mq } },
2312   },
2313   /* EVEX_W_0F16_P_0_M_1 */
2314   {
2315     { "vmovlhps",       { XMM, Vex, EXx } },
2316   },
2317   /* EVEX_W_0F16_P_1 */
2318   {
2319     { "vmovshdup",      { XM, EXx } },
2320   },
2321   /* EVEX_W_0F16_P_2 */
2322   {
2323     { Bad_Opcode },
2324     { "vmovhpd",        { XMM, Vex, EXxmm_mq } },
2325   },
2326   /* EVEX_W_0F17_P_0 */
2327   {
2328     { "vmovhps",        { EXxmm_mq, XMM } },
2329   },
2330   /* EVEX_W_0F17_P_2 */
2331   {
2332     { Bad_Opcode },
2333     { "vmovhpd",        { EXxmm_mq, XMM } },
2334   },
2335   /* EVEX_W_0F28_P_0 */
2336   {
2337     { "vmovaps",        { XM, EXx } },
2338   },
2339   /* EVEX_W_0F28_P_2 */
2340   {
2341     { Bad_Opcode },
2342     { "vmovapd",        { XM, EXx } },
2343   },
2344   /* EVEX_W_0F29_P_0 */
2345   {
2346     { "vmovaps",        { EXxS, XM } },
2347   },
2348   /* EVEX_W_0F29_P_2 */
2349   {
2350     { Bad_Opcode },
2351     { "vmovapd",        { EXxS, XM } },
2352   },
2353   /* EVEX_W_0F2A_P_1 */
2354   {
2355     { "vcvtsi2ss",      { XMScalar, VexScalar, EXxEVexR, Ed } },
2356     { "vcvtsi2ss",      { XMScalar, VexScalar, EXxEVexR, Eq } },
2357   },
2358   /* EVEX_W_0F2A_P_3 */
2359   {
2360     { "vcvtsi2sd",      { XMScalar, VexScalar, Ed } },
2361     { "vcvtsi2sd",      { XMScalar, VexScalar, EXxEVexR, Eq } },
2362   },
2363   /* EVEX_W_0F2B_P_0 */
2364   {
2365     { "vmovntps",       { EXx, XM } },
2366   },
2367   /* EVEX_W_0F2B_P_2 */
2368   {
2369     { Bad_Opcode },
2370     { "vmovntpd",       { EXx, XM } },
2371   },
2372   /* EVEX_W_0F2E_P_0 */
2373   {
2374     { "vucomiss",       { XMScalar, EXxmm_md, EXxEVexS } },
2375   },
2376   /* EVEX_W_0F2E_P_2 */
2377   {
2378     { Bad_Opcode },
2379     { "vucomisd",       { XMScalar, EXxmm_mq, EXxEVexS } },
2380   },
2381   /* EVEX_W_0F2F_P_0 */
2382   {
2383     { "vcomiss",        { XMScalar, EXxmm_md, EXxEVexS } },
2384   },
2385   /* EVEX_W_0F2F_P_2 */
2386   {
2387     { Bad_Opcode },
2388     { "vcomisd",        { XMScalar, EXxmm_mq, EXxEVexS } },
2389   },
2390   /* EVEX_W_0F51_P_0 */
2391   {
2392     { "vsqrtps",        { XM, EXx, EXxEVexR } },
2393   },
2394   /* EVEX_W_0F51_P_1 */
2395   {
2396     { "vsqrtss",        { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2397   },
2398   /* EVEX_W_0F51_P_2 */
2399   {
2400     { Bad_Opcode },
2401     { "vsqrtpd",        { XM, EXx, EXxEVexR } },
2402   },
2403   /* EVEX_W_0F51_P_3 */
2404   {
2405     { Bad_Opcode },
2406     { "vsqrtsd",        { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2407   },
2408   /* EVEX_W_0F58_P_0 */
2409   {
2410     { "vaddps", { XM, Vex, EXx, EXxEVexR } },
2411   },
2412   /* EVEX_W_0F58_P_1 */
2413   {
2414     { "vaddss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2415   },
2416   /* EVEX_W_0F58_P_2 */
2417   {
2418     { Bad_Opcode },
2419     { "vaddpd", { XM, Vex, EXx, EXxEVexR } },
2420   },
2421   /* EVEX_W_0F58_P_3 */
2422   {
2423     { Bad_Opcode },
2424     { "vaddsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2425   },
2426   /* EVEX_W_0F59_P_0 */
2427   {
2428     { "vmulps", { XM, Vex, EXx, EXxEVexR } },
2429   },
2430   /* EVEX_W_0F59_P_1 */
2431   {
2432     { "vmulss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2433   },
2434   /* EVEX_W_0F59_P_2 */
2435   {
2436     { Bad_Opcode },
2437     { "vmulpd", { XM, Vex, EXx, EXxEVexR } },
2438   },
2439   /* EVEX_W_0F59_P_3 */
2440   {
2441     { Bad_Opcode },
2442     { "vmulsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2443   },
2444   /* EVEX_W_0F5A_P_0 */
2445   {
2446     { "vcvtps2pd",   { XM, EXEvexHalfBcstXmmq, EXxEVexS } },
2447   },
2448   /* EVEX_W_0F5A_P_1 */
2449   {
2450     { "vcvtss2sd",      { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2451   },
2452   /* EVEX_W_0F5A_P_2 */
2453   {
2454     { Bad_Opcode },
2455     { "vcvtpd2ps",      { XMxmmq, EXx, EXxEVexR } },
2456   },
2457   /* EVEX_W_0F5A_P_3 */
2458   {
2459     { Bad_Opcode },
2460     { "vcvtsd2ss",      { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2461   },
2462   /* EVEX_W_0F5B_P_0 */
2463   {
2464     { "vcvtdq2ps",      { XM, EXx, EXxEVexR } },
2465   },
2466   /* EVEX_W_0F5B_P_1 */
2467   {
2468     { "vcvttps2dq",     { XM, EXx, EXxEVexS } },
2469   },
2470   /* EVEX_W_0F5B_P_2 */
2471   {
2472     { "vcvtps2dq",      { XM, EXx, EXxEVexR } },
2473   },
2474   /* EVEX_W_0F5C_P_0 */
2475   {
2476     { "vsubps", { XM, Vex, EXx, EXxEVexR } },
2477   },
2478   /* EVEX_W_0F5C_P_1 */
2479   {
2480     { "vsubss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2481   },
2482   /* EVEX_W_0F5C_P_2 */
2483   {
2484     { Bad_Opcode },
2485     { "vsubpd", { XM, Vex, EXx, EXxEVexR } },
2486   },
2487   /* EVEX_W_0F5C_P_3 */
2488   {
2489     { Bad_Opcode },
2490     { "vsubsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2491   },
2492   /* EVEX_W_0F5D_P_0 */
2493   {
2494     { "vminps", { XM, Vex, EXx, EXxEVexS } },
2495   },
2496   /* EVEX_W_0F5D_P_1 */
2497   {
2498     { "vminss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2499   },
2500   /* EVEX_W_0F5D_P_2 */
2501   {
2502     { Bad_Opcode },
2503     { "vminpd", { XM, Vex, EXx, EXxEVexS } },
2504   },
2505   /* EVEX_W_0F5D_P_3 */
2506   {
2507     { Bad_Opcode },
2508     { "vminsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS } },
2509   },
2510   /* EVEX_W_0F5E_P_0 */
2511   {
2512     { "vdivps", { XM, Vex, EXx, EXxEVexR } },
2513   },
2514   /* EVEX_W_0F5E_P_1 */
2515   {
2516     { "vdivss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2517   },
2518   /* EVEX_W_0F5E_P_2 */
2519   {
2520     { Bad_Opcode },
2521     { "vdivpd", { XM, Vex, EXx, EXxEVexR } },
2522   },
2523   /* EVEX_W_0F5E_P_3 */
2524   {
2525     { Bad_Opcode },
2526     { "vdivsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2527   },
2528   /* EVEX_W_0F5F_P_0 */
2529   {
2530     { "vmaxps", { XM, Vex, EXx, EXxEVexS } },
2531   },
2532   /* EVEX_W_0F5F_P_1 */
2533   {
2534     { "vmaxss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2535   },
2536   /* EVEX_W_0F5F_P_2 */
2537   {
2538     { Bad_Opcode },
2539     { "vmaxpd", { XM, Vex, EXx, EXxEVexS } },
2540   },
2541   /* EVEX_W_0F5F_P_3 */
2542   {
2543     { Bad_Opcode },
2544     { "vmaxsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS } },
2545   },
2546   /* EVEX_W_0F62_P_2 */
2547   {
2548     { "vpunpckldq",     { XM, Vex, EXx } },
2549   },
2550   /* EVEX_W_0F66_P_2 */
2551   {
2552     { "vpcmpgtd",       { XMask, Vex, EXx } },
2553   },
2554   /* EVEX_W_0F6A_P_2 */
2555   {
2556     { "vpunpckhdq",     { XM, Vex, EXx } },
2557   },
2558   /* EVEX_W_0F6C_P_2 */
2559   {
2560     { Bad_Opcode },
2561     { "vpunpcklqdq",    { XM, Vex, EXx } },
2562   },
2563   /* EVEX_W_0F6D_P_2 */
2564   {
2565     { Bad_Opcode },
2566     { "vpunpckhqdq",    { XM, Vex, EXx } },
2567   },
2568   /* EVEX_W_0F6E_P_2 */
2569   {
2570     { "vmovd",  { XMScalar, Ed } },
2571     { "vmovq",  { XMScalar, Eq } },
2572   },
2573   /* EVEX_W_0F6F_P_1 */
2574   {
2575     { "vmovdqu32",      { XM, EXEvexXNoBcst } },
2576     { "vmovdqu64",      { XM, EXEvexXNoBcst } },
2577   },
2578   /* EVEX_W_0F6F_P_2 */
2579   {
2580     { "vmovdqa32",      { XM, EXEvexXNoBcst } },
2581     { "vmovdqa64",      { XM, EXEvexXNoBcst } },
2582   },
2583   /* EVEX_W_0F70_P_2 */
2584   {
2585     { "vpshufd",        { XM, EXx, Ib } },
2586   },
2587   /* EVEX_W_0F72_R_2_P_2 */
2588   {
2589     { "vpsrld", { Vex, EXx, Ib } },
2590   },
2591   /* EVEX_W_0F72_R_6_P_2 */
2592   {
2593     { "vpslld", { Vex, EXx, Ib } },
2594   },
2595   /* EVEX_W_0F73_R_2_P_2 */
2596   {
2597     { Bad_Opcode },
2598     { "vpsrlq", { Vex, EXx, Ib } },
2599   },
2600   /* EVEX_W_0F73_R_6_P_2 */
2601   {
2602     { Bad_Opcode },
2603     { "vpsllq", { Vex, EXx, Ib } },
2604   },
2605   /* EVEX_W_0F76_P_2 */
2606   {
2607     { "vpcmpeqd",       { XMask, Vex, EXx } },
2608   },
2609   /* EVEX_W_0F78_P_0 */
2610   {
2611     { "vcvttps2udq",    { XM, EXx, EXxEVexS } },
2612     { "vcvttpd2udq",    { XMxmmq, EXx, EXxEVexS } },
2613   },
2614   /* EVEX_W_0F79_P_0 */
2615   {
2616     { "vcvtps2udq",     { XM, EXx, EXxEVexR } },
2617     { "vcvtpd2udq",     { XMxmmq, EXx, EXxEVexR } },
2618   },
2619   /* EVEX_W_0F7A_P_1 */
2620   {
2621     { "vcvtudq2pd",     { XM, EXEvexHalfBcstXmmq } },
2622   },
2623   /* EVEX_W_0F7A_P_3 */
2624   {
2625     { "vcvtudq2ps",     { XM, EXx, EXxEVexR } },
2626   },
2627   /* EVEX_W_0F7B_P_1 */
2628   {
2629     { "vcvtusi2ss",     { XMScalar, VexScalar, EXxEVexR, Ed } },
2630     { "vcvtusi2ss",     { XMScalar, VexScalar, EXxEVexR, Eq } },
2631   },
2632   /* EVEX_W_0F7B_P_3 */
2633   {
2634     { "vcvtusi2sd",     { XMScalar, VexScalar, Ed } },
2635     { "vcvtusi2sd",     { XMScalar, VexScalar, EXxEVexR, Eq } },
2636   },
2637   /* EVEX_W_0F7E_P_1 */
2638   {
2639     { Bad_Opcode },
2640     { "vmovq",  { XMScalar, EXxmm_mq } },
2641   },
2642   /* EVEX_W_0F7E_P_2 */
2643   {
2644     { "vmovd",  { Ed, XMScalar } },
2645     { "vmovq",  { Eq, XMScalar } },
2646   },
2647   /* EVEX_W_0F7F_P_1 */
2648   {
2649     { "vmovdqu32",      { EXxS, XM } },
2650     { "vmovdqu64",      { EXxS, XM } },
2651   },
2652   /* EVEX_W_0F7F_P_2 */
2653   {
2654     { "vmovdqa32",      { EXxS, XM } },
2655     { "vmovdqa64",      { EXxS, XM } },
2656   },
2657   /* EVEX_W_0FC2_P_0 */
2658   {
2659     { "vcmpps", { XMask, Vex, EXx, EXxEVexS, VCMP } },
2660   },
2661   /* EVEX_W_0FC2_P_1 */
2662   {
2663     { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, VCMP } },
2664   },
2665   /* EVEX_W_0FC2_P_2 */
2666   {
2667     { Bad_Opcode },
2668     { "vcmppd", { XMask, Vex, EXx, EXxEVexS, VCMP } },
2669   },
2670   /* EVEX_W_0FC2_P_3 */
2671   {
2672     { Bad_Opcode },
2673     { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, VCMP } },
2674   },
2675   /* EVEX_W_0FC6_P_0 */
2676   {
2677     { "vshufps",        { XM, Vex, EXx, Ib } },
2678   },
2679   /* EVEX_W_0FC6_P_2 */
2680   {
2681     { Bad_Opcode },
2682     { "vshufpd",        { XM, Vex, EXx, Ib } },
2683   },
2684   /* EVEX_W_0FD2_P_2 */
2685   {
2686     { "vpsrld", { XM, Vex, EXxmm } },
2687   },
2688   /* EVEX_W_0FD3_P_2 */
2689   {
2690     { Bad_Opcode },
2691     { "vpsrlq", { XM, Vex, EXxmm } },
2692   },
2693   /* EVEX_W_0FD4_P_2 */
2694   {
2695     { Bad_Opcode },
2696     { "vpaddq", { XM, Vex, EXx } },
2697   },
2698   /* EVEX_W_0FD6_P_2 */
2699   {
2700     { Bad_Opcode },
2701     { "vmovq",  { EXxmm_mq, XMScalar } },
2702   },
2703   /* EVEX_W_0FE6_P_1 */
2704   {
2705     { "vcvtdq2pd",      { XM, EXEvexHalfBcstXmmq } },
2706   },
2707   /* EVEX_W_0FE6_P_2 */
2708   {
2709     { Bad_Opcode },
2710     { "vcvttpd2dq",     { XMxmmq, EXx, EXxEVexS } },
2711   },
2712   /* EVEX_W_0FE6_P_3 */
2713   {
2714     { Bad_Opcode },
2715     { "vcvtpd2dq",      { XMxmmq, EXx, EXxEVexR } },
2716   },
2717   /* EVEX_W_0FE7_P_2 */
2718   {
2719     { "vmovntdq",       { EXEvexXNoBcst, XM } },
2720   },
2721   /* EVEX_W_0FF2_P_2 */
2722   {
2723     { "vpslld", { XM, Vex, EXxmm } },
2724   },
2725   /* EVEX_W_0FF3_P_2 */
2726   {
2727     { Bad_Opcode },
2728     { "vpsllq", { XM, Vex, EXxmm } },
2729   },
2730   /* EVEX_W_0FF4_P_2 */
2731   {
2732     { Bad_Opcode },
2733     { "vpmuludq",       { XM, Vex, EXx } },
2734   },
2735   /* EVEX_W_0FFA_P_2 */
2736   {
2737     { "vpsubd", { XM, Vex, EXx } },
2738   },
2739   /* EVEX_W_0FFB_P_2 */
2740   {
2741     { Bad_Opcode },
2742     { "vpsubq", { XM, Vex, EXx } },
2743   },
2744   /* EVEX_W_0FFE_P_2 */
2745   {
2746     { "vpaddd", { XM, Vex, EXx } },
2747   },
2748
2749   /* EVEX_W_0F380C_P_2 */
2750   {
2751     { "vpermilps",      { XM, Vex, EXx } },
2752   },
2753   /* EVEX_W_0F380D_P_2 */
2754   {
2755     { Bad_Opcode },
2756     { "vpermilpd",      { XM, Vex, EXx } },
2757   },
2758   /* EVEX_W_0F3811_P_1 */
2759   {
2760     { "vpmovusdb",      { EXxmmqd, XM } },
2761   },
2762   /* EVEX_W_0F3812_P_1 */
2763   {
2764     { "vpmovusqb",      { EXxmmdw, XM } },
2765   },
2766   /* EVEX_W_0F3813_P_1 */
2767   {
2768     { "vpmovusdw",      { EXxmmq, XM } },
2769   },
2770   /* EVEX_W_0F3813_P_2 */
2771   {
2772     { "vcvtph2ps",      { XM, EXxmmq, EXxEVexS } },
2773   },
2774   /* EVEX_W_0F3814_P_1 */
2775   {
2776     { "vpmovusqw",      { EXxmmqd, XM } },
2777   },
2778   /* EVEX_W_0F3815_P_1 */
2779   {
2780     { "vpmovusqd",      { EXxmmq, XM } },
2781   },
2782   /* EVEX_W_0F3818_P_2 */
2783   {
2784     { "vbroadcastss",   { XM, EXxmm_md } },
2785   },
2786   /* EVEX_W_0F3819_P_2 */
2787   {
2788     { Bad_Opcode },
2789     { "vbroadcastsd",   { XM, EXxmm_mq } },
2790   },
2791   /* EVEX_W_0F381A_P_2 */
2792   {
2793     { "vbroadcastf32x4",        { XM, EXxmm } },
2794   },
2795   /* EVEX_W_0F381B_P_2 */
2796   {
2797     { Bad_Opcode },
2798     { "vbroadcastf64x4",        { XM, EXymm } },
2799   },
2800   /* EVEX_W_0F381E_P_2 */
2801   {
2802     { "vpabsd", { XM, EXx } },
2803   },
2804   /* EVEX_W_0F381F_P_2 */
2805   {
2806     { Bad_Opcode },
2807     { "vpabsq", { XM, EXx } },
2808   },
2809   /* EVEX_W_0F3821_P_1 */
2810   {
2811     { "vpmovsdb",       { EXxmmqd, XM } },
2812   },
2813   /* EVEX_W_0F3822_P_1 */
2814   {
2815     { "vpmovsqb",       { EXxmmdw, XM } },
2816   },
2817   /* EVEX_W_0F3823_P_1 */
2818   {
2819     { "vpmovsdw",       { EXxmmq, XM } },
2820   },
2821   /* EVEX_W_0F3824_P_1 */
2822   {
2823     { "vpmovsqw",       { EXxmmqd, XM } },
2824   },
2825   /* EVEX_W_0F3825_P_1 */
2826   {
2827     { "vpmovsqd",       { EXxmmq, XM } },
2828   },
2829   /* EVEX_W_0F3825_P_2 */
2830   {
2831     { "vpmovsxdq",      { XM, EXxmmq } },
2832   },
2833   /* EVEX_W_0F3828_P_2 */
2834   {
2835     { Bad_Opcode },
2836     { "vpmuldq",        { XM, Vex, EXx } },
2837   },
2838   /* EVEX_W_0F3829_P_2 */
2839   {
2840     { Bad_Opcode },
2841     { "vpcmpeqq",       { XMask, Vex, EXx } },
2842   },
2843   /* EVEX_W_0F382A_P_1 */
2844   {
2845     { Bad_Opcode },
2846     { "vpbroadcastmb2q",        { XM, MaskR } },
2847   },
2848   /* EVEX_W_0F382A_P_2 */
2849   {
2850     { "vmovntdqa",      { XM, EXEvexXNoBcst } },
2851   },
2852   /* EVEX_W_0F3831_P_1 */
2853   {
2854     { "vpmovdb",        { EXxmmqd, XM } },
2855   },
2856   /* EVEX_W_0F3832_P_1 */
2857   {
2858     { "vpmovqb",        { EXxmmdw, XM } },
2859   },
2860   /* EVEX_W_0F3833_P_1 */
2861   {
2862     { "vpmovdw",        { EXxmmq, XM } },
2863   },
2864   /* EVEX_W_0F3834_P_1 */
2865   {
2866     { "vpmovqw",        { EXxmmqd, XM } },
2867   },
2868   /* EVEX_W_0F3835_P_1 */
2869   {
2870     { "vpmovqd",        { EXxmmq, XM } },
2871   },
2872   /* EVEX_W_0F3835_P_2 */
2873   {
2874     { "vpmovzxdq",      { XM, EXxmmq } },
2875   },
2876   /* EVEX_W_0F3837_P_2 */
2877   {
2878     { Bad_Opcode },
2879     { "vpcmpgtq",       { XMask, Vex, EXx } },
2880   },
2881   /* EVEX_W_0F383A_P_1 */
2882   {
2883     { "vpbroadcastmw2d",        { XM, MaskR } },
2884   },
2885   /* EVEX_W_0F3840_P_2 */
2886   {
2887     { "vpmulld",        { XM, Vex, EXx } },
2888   },
2889   /* EVEX_W_0F3858_P_2 */
2890   {
2891     { "vpbroadcastd",   { XM, EXxmm_md } },
2892   },
2893   /* EVEX_W_0F3859_P_2 */
2894   {
2895     { Bad_Opcode },
2896     { "vpbroadcastq",   { XM, EXxmm_mq } },
2897   },
2898   /* EVEX_W_0F385A_P_2 */
2899   {
2900     { "vbroadcasti32x4",        { XM, EXxmm } },
2901   },
2902   /* EVEX_W_0F385B_P_2 */
2903   {
2904     { Bad_Opcode },
2905     { "vbroadcasti64x4",        { XM, EXymm } },
2906   },
2907   /* EVEX_W_0F3891_P_2 */
2908   {
2909     { "vpgatherqd",     { XMxmmq, MVexVSIBQDWpX } },
2910     { "vpgatherqq",     { XM, MVexVSIBQWpX } },
2911   },
2912   /* EVEX_W_0F3893_P_2 */
2913   {
2914     { "vgatherqps",     { XMxmmq, MVexVSIBQDWpX } },
2915     { "vgatherqpd",     { XM, MVexVSIBQWpX } },
2916   },
2917   /* EVEX_W_0F38A1_P_2 */
2918   {
2919     { "vpscatterqd",    { MVexVSIBQDWpX, XMxmmq } },
2920     { "vpscatterqq",    { MVexVSIBQWpX, XM } },
2921   },
2922   /* EVEX_W_0F38A3_P_2 */
2923   {
2924     { "vscatterqps",    { MVexVSIBQDWpX, XMxmmq } },
2925     { "vscatterqpd",    { MVexVSIBQWpX, XM } },
2926   },
2927   /* EVEX_W_0F38C7_R_1_P_2 */
2928   {
2929     { "vgatherpf0qps",  { MVexVSIBDQWpX } },
2930     { "vgatherpf0qpd",  { MVexVSIBQWpX } },
2931   },
2932   /* EVEX_W_0F38C7_R_2_P_2 */
2933   {
2934     { "vgatherpf1qps",  { MVexVSIBDQWpX } },
2935     { "vgatherpf1qpd",  { MVexVSIBQWpX } },
2936   },
2937   /* EVEX_W_0F38C7_R_5_P_2 */
2938   {
2939     { "vscatterpf0qps",  { MVexVSIBDQWpX } },
2940     { "vscatterpf0qpd",  { MVexVSIBQWpX } },
2941   },
2942   /* EVEX_W_0F38C7_R_6_P_2 */
2943   {
2944     { "vscatterpf1qps",  { MVexVSIBDQWpX } },
2945     { "vscatterpf1qpd",  { MVexVSIBQWpX } },
2946   },
2947
2948   /* EVEX_W_0F3A00_P_2 */
2949   {
2950     { Bad_Opcode },
2951     { "vpermq", { XM, EXx, Ib } },
2952   },
2953   /* EVEX_W_0F3A01_P_2 */
2954   {
2955     { Bad_Opcode },
2956     { "vpermpd",        { XM, EXx, Ib } },
2957   },
2958   /* EVEX_W_0F3A04_P_2 */
2959   {
2960     { "vpermilps",      { XM, EXx, Ib } },
2961   },
2962   /* EVEX_W_0F3A05_P_2 */
2963   {
2964     { Bad_Opcode },
2965     { "vpermilpd",      { XM, EXx, Ib } },
2966   },
2967   /* EVEX_W_0F3A08_P_2 */
2968   {
2969     { "vrndscaleps",    { XM, EXx, EXxEVexS, Ib } },
2970   },
2971   /* EVEX_W_0F3A09_P_2 */
2972   {
2973     { Bad_Opcode },
2974     { "vrndscalepd",    { XM, EXx, EXxEVexS, Ib } },
2975   },
2976   /* EVEX_W_0F3A0A_P_2 */
2977   {
2978     { "vrndscaless",    { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib } },
2979   },
2980   /* EVEX_W_0F3A0B_P_2 */
2981   {
2982     { Bad_Opcode },
2983     { "vrndscalesd",    { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib } },
2984   },
2985   /* EVEX_W_0F3A18_P_2 */
2986   {
2987     { "vinsertf32x4",   { XM, Vex, EXxmm, Ib } },
2988   },
2989   /* EVEX_W_0F3A19_P_2 */
2990   {
2991     { "vextractf32x4",  { EXxmm, XM, Ib } },
2992   },
2993   /* EVEX_W_0F3A1A_P_2 */
2994   {
2995     { Bad_Opcode },
2996     { "vinsertf64x4",   { XM, Vex, EXxmmq, Ib } },
2997   },
2998   /* EVEX_W_0F3A1B_P_2 */
2999   {
3000     { Bad_Opcode },
3001     { "vextractf64x4",  { EXxmmq, XM, Ib } },
3002   },
3003   /* EVEX_W_0F3A1D_P_2 */
3004   {
3005     { "vcvtps2ph",      { EXxmmq, XM, EXxEVexS, Ib } },
3006   },
3007   /* EVEX_W_0F3A21_P_2 */
3008   {
3009     { "vinsertps",      { XMM, Vex, EXxmm_md, Ib } },
3010   },
3011   /* EVEX_W_0F3A23_P_2 */
3012   {
3013     { "vshuff32x4",     { XM, Vex, EXx, Ib } },
3014     { "vshuff64x2",     { XM, Vex, EXx, Ib } },
3015   },
3016   /* EVEX_W_0F3A38_P_2 */
3017   {
3018     { "vinserti32x4",   { XM, Vex, EXxmm, Ib } },
3019   },
3020   /* EVEX_W_0F3A39_P_2 */
3021   {
3022     { "vextracti32x4",  { EXxmm, XM, Ib } },
3023   },
3024   /* EVEX_W_0F3A3A_P_2 */
3025   {
3026     { Bad_Opcode },
3027     { "vinserti64x4",   { XM, Vex, EXxmmq, Ib } },
3028   },
3029   /* EVEX_W_0F3A3B_P_2 */
3030   {
3031     { Bad_Opcode },
3032     { "vextracti64x4",  { EXxmmq, XM, Ib } },
3033   },
3034   /* EVEX_W_0F3A43_P_2 */
3035   {
3036     { "vshufi32x4",     { XM, Vex, EXx, Ib } },
3037     { "vshufi64x2",     { XM, Vex, EXx, Ib } },
3038   },
3039 #endif /* NEED_VEX_W_TABLE */
3040 #ifdef NEED_MOD_TABLE
3041   {
3042     /* MOD_EVEX_0F10_PREFIX_1 */
3043     { VEX_W_TABLE (EVEX_W_0F10_P_1_M_0) },
3044     { VEX_W_TABLE (EVEX_W_0F10_P_1_M_1) },
3045   },
3046   {
3047     /* MOD_EVEX_0F10_PREFIX_3 */
3048     { VEX_W_TABLE (EVEX_W_0F10_P_3_M_0) },
3049     { VEX_W_TABLE (EVEX_W_0F10_P_3_M_1) },
3050   },
3051   {
3052     /* MOD_EVEX_0F11_PREFIX_1 */
3053     { VEX_W_TABLE (EVEX_W_0F11_P_1_M_0) },
3054     { VEX_W_TABLE (EVEX_W_0F11_P_1_M_1) },
3055   },
3056   {
3057     /* MOD_EVEX_0F11_PREFIX_3 */
3058     { VEX_W_TABLE (EVEX_W_0F11_P_3_M_0) },
3059     { VEX_W_TABLE (EVEX_W_0F11_P_3_M_1) },
3060   },
3061   {
3062     /* MOD_EVEX_0F12_PREFIX_0 */
3063     { VEX_W_TABLE (EVEX_W_0F12_P_0_M_0) },
3064     { VEX_W_TABLE (EVEX_W_0F12_P_0_M_1) },
3065   },
3066   {
3067     /* MOD_EVEX_0F16_PREFIX_0 */
3068     { VEX_W_TABLE (EVEX_W_0F16_P_0_M_0) },
3069     { VEX_W_TABLE (EVEX_W_0F16_P_0_M_1) },
3070   },
3071   {
3072     /* MOD_EVEX_0F38C6_REG_1 */
3073     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) },
3074   },
3075   {
3076     /* MOD_EVEX_0F38C6_REG_2 */
3077     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_2) },
3078   },
3079   {
3080     /* MOD_EVEX_0F38C6_REG_5 */
3081     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_5) },
3082   },
3083   {
3084     /* MOD_EVEX_0F38C6_REG_6 */
3085     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_6) },
3086   },
3087   {
3088     /* MOD_EVEX_0F38C7_REG_1 */
3089     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_1) },
3090   },
3091   {
3092     /* MOD_EVEX_0F38C7_REG_2 */
3093     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_2) },
3094   },
3095   {
3096     /* MOD_EVEX_0F38C7_REG_5 */
3097     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_5) },
3098   },
3099   {
3100     /* MOD_EVEX_0F38C7_REG_6 */
3101     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
3102   },
3103 #endif /* NEED_MOD_TABLE */