Add Intel AVX-512 support
[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     { PREFIX_TABLE (PREFIX_EVEX_0F3A3E) },
659     { PREFIX_TABLE (PREFIX_EVEX_0F3A3F) },
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_0F3A3E */
2186   {
2187     { Bad_Opcode },
2188     { Bad_Opcode },
2189     { "vpcmpuW",        { XMask, Vex, EXx, Ib } },
2190   },
2191   /* PREFIX_EVEX_0F3A3F */
2192   {
2193     { Bad_Opcode },
2194     { Bad_Opcode },
2195     { "vpcmpW", { XMask, Vex, EXx, Ib } },
2196   },
2197   /* PREFIX_EVEX_0F3A43 */
2198   {
2199     { Bad_Opcode },
2200     { Bad_Opcode },
2201     { VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
2202   },
2203   /* PREFIX_EVEX_0F3A54 */
2204   {
2205     { Bad_Opcode },
2206     { Bad_Opcode },
2207     { "vfixupimmp%XW",  { XM, Vex, EXx, EXxEVexS, Ib } },
2208   },
2209   /* PREFIX_EVEX_0F3A55 */
2210   {
2211     { Bad_Opcode },
2212     { Bad_Opcode },
2213     { "vfixupimms%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib } },
2214   },
2215 #endif /* NEED_PREFIX_TABLE */
2216
2217 #ifdef NEED_VEX_W_TABLE
2218   /* EVEX_W_0F10_P_0 */
2219   {
2220     { "vmovups",        { XM, EXEvexXNoBcst } },
2221   },
2222   /* EVEX_W_0F10_P_1_M_0 */
2223   {
2224     { "vmovss", { XMScalar, EXdScalar } },
2225   },
2226   /* EVEX_W_0F10_P_1_M_1 */
2227   {
2228     { "vmovss", { XMScalar, VexScalar, EXx } },
2229   },
2230   /* EVEX_W_0F10_P_2 */
2231   {
2232     { Bad_Opcode },
2233     { "vmovupd",        { XM, EXEvexXNoBcst } },
2234   },
2235   /* EVEX_W_0F10_P_3_M_0 */
2236   {
2237     { Bad_Opcode },
2238     { "vmovsd", { XMScalar, EXqScalar } },
2239   },
2240   /* EVEX_W_0F10_P_3_M_1 */
2241   {
2242     { Bad_Opcode },
2243     { "vmovsd", { XMScalar, VexScalar, EXx } },
2244   },
2245   /* EVEX_W_0F11_P_0 */
2246   {
2247     { "vmovups",        { EXxS, XM } },
2248   },
2249   /* EVEX_W_0F11_P_1_M_0 */
2250   {
2251     { "vmovss", { EXdScalarS, XMScalar } },
2252   },
2253   /* EVEX_W_0F11_P_1_M_1 */
2254   {
2255     { "vmovss", { EXxS, Vex, XMScalar } },
2256   },
2257   /* EVEX_W_0F11_P_2 */
2258   {
2259     { Bad_Opcode },
2260     { "vmovupd",        { EXxS, XM } },
2261   },
2262   /* EVEX_W_0F11_P_3_M_0 */
2263   {
2264     { Bad_Opcode },
2265     { "vmovsd", { EXqScalarS, XMScalar } },
2266   },
2267   /* EVEX_W_0F11_P_3_M_1 */
2268   {
2269     { Bad_Opcode },
2270     { "vmovsd", { EXxS, Vex, XMScalar } },
2271   },
2272   /* EVEX_W_0F12_P_0_M_0 */
2273   {
2274     { "vmovlps",        { XMM, Vex, EXxmm_mq } },
2275   },
2276   /* EVEX_W_0F12_P_0_M_1 */
2277   {
2278     { "vmovhlps",       { XMM, Vex, EXxmm_mq } },
2279   },
2280   /* EVEX_W_0F12_P_1 */
2281   {
2282     { "vmovsldup",      { XM, EXEvexXNoBcst } },
2283   },
2284   /* EVEX_W_0F12_P_2 */
2285   {
2286     { Bad_Opcode },
2287     { "vmovlpd",        { XMM, Vex, EXxmm_mq } },
2288   },
2289   /* EVEX_W_0F12_P_3 */
2290   {
2291     { Bad_Opcode },
2292     { "vmovddup",       { XM, EXymmq } },
2293   },
2294   /* EVEX_W_0F13_P_0 */
2295   {
2296     { "vmovlps",        { EXxmm_mq, XMM } },
2297   },
2298   /* EVEX_W_0F13_P_2 */
2299   {
2300     { Bad_Opcode },
2301     { "vmovlpd",        { EXxmm_mq, XMM } },
2302   },
2303   /* EVEX_W_0F14_P_0 */
2304   {
2305     { "vunpcklps",      { XM, Vex, EXx } },
2306   },
2307   /* EVEX_W_0F14_P_2 */
2308   {
2309     { Bad_Opcode },
2310     { "vunpcklpd",      { XM, Vex, EXx } },
2311   },
2312   /* EVEX_W_0F15_P_0 */
2313   {
2314     { "vunpckhps",      { XM, Vex, EXx } },
2315   },
2316   /* EVEX_W_0F15_P_2 */
2317   {
2318     { Bad_Opcode },
2319     { "vunpckhpd",      { XM, Vex, EXx } },
2320   },
2321   /* EVEX_W_0F16_P_0_M_0 */
2322   {
2323     { "vmovhps",        { XMM, Vex, EXxmm_mq } },
2324   },
2325   /* EVEX_W_0F16_P_0_M_1 */
2326   {
2327     { "vmovlhps",       { XMM, Vex, EXx } },
2328   },
2329   /* EVEX_W_0F16_P_1 */
2330   {
2331     { "vmovshdup",      { XM, EXx } },
2332   },
2333   /* EVEX_W_0F16_P_2 */
2334   {
2335     { Bad_Opcode },
2336     { "vmovhpd",        { XMM, Vex, EXxmm_mq } },
2337   },
2338   /* EVEX_W_0F17_P_0 */
2339   {
2340     { "vmovhps",        { EXxmm_mq, XMM } },
2341   },
2342   /* EVEX_W_0F17_P_2 */
2343   {
2344     { Bad_Opcode },
2345     { "vmovhpd",        { EXxmm_mq, XMM } },
2346   },
2347   /* EVEX_W_0F28_P_0 */
2348   {
2349     { "vmovaps",        { XM, EXx } },
2350   },
2351   /* EVEX_W_0F28_P_2 */
2352   {
2353     { Bad_Opcode },
2354     { "vmovapd",        { XM, EXx } },
2355   },
2356   /* EVEX_W_0F29_P_0 */
2357   {
2358     { "vmovaps",        { EXxS, XM } },
2359   },
2360   /* EVEX_W_0F29_P_2 */
2361   {
2362     { Bad_Opcode },
2363     { "vmovapd",        { EXxS, XM } },
2364   },
2365   /* EVEX_W_0F2A_P_1 */
2366   {
2367     { "vcvtsi2ss",      { XMScalar, VexScalar, EXxEVexR, Ed } },
2368     { "vcvtsi2ss",      { XMScalar, VexScalar, EXxEVexR, Eq } },
2369   },
2370   /* EVEX_W_0F2A_P_3 */
2371   {
2372     { "vcvtsi2sd",      { XMScalar, VexScalar, Ed } },
2373     { "vcvtsi2sd",      { XMScalar, VexScalar, EXxEVexR, Eq } },
2374   },
2375   /* EVEX_W_0F2B_P_0 */
2376   {
2377     { "vmovntps",       { EXx, XM } },
2378   },
2379   /* EVEX_W_0F2B_P_2 */
2380   {
2381     { Bad_Opcode },
2382     { "vmovntpd",       { EXx, XM } },
2383   },
2384   /* EVEX_W_0F2E_P_0 */
2385   {
2386     { "vucomiss",       { XMScalar, EXxmm_md, EXxEVexS } },
2387   },
2388   /* EVEX_W_0F2E_P_2 */
2389   {
2390     { Bad_Opcode },
2391     { "vucomisd",       { XMScalar, EXxmm_mq, EXxEVexS } },
2392   },
2393   /* EVEX_W_0F2F_P_0 */
2394   {
2395     { "vcomiss",        { XMScalar, EXxmm_md, EXxEVexS } },
2396   },
2397   /* EVEX_W_0F2F_P_2 */
2398   {
2399     { Bad_Opcode },
2400     { "vcomisd",        { XMScalar, EXxmm_mq, EXxEVexS } },
2401   },
2402   /* EVEX_W_0F51_P_0 */
2403   {
2404     { "vsqrtps",        { XM, EXx, EXxEVexR } },
2405   },
2406   /* EVEX_W_0F51_P_1 */
2407   {
2408     { "vsqrtss",        { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2409   },
2410   /* EVEX_W_0F51_P_2 */
2411   {
2412     { Bad_Opcode },
2413     { "vsqrtpd",        { XM, EXx, EXxEVexR } },
2414   },
2415   /* EVEX_W_0F51_P_3 */
2416   {
2417     { Bad_Opcode },
2418     { "vsqrtsd",        { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2419   },
2420   /* EVEX_W_0F58_P_0 */
2421   {
2422     { "vaddps", { XM, Vex, EXx, EXxEVexR } },
2423   },
2424   /* EVEX_W_0F58_P_1 */
2425   {
2426     { "vaddss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2427   },
2428   /* EVEX_W_0F58_P_2 */
2429   {
2430     { Bad_Opcode },
2431     { "vaddpd", { XM, Vex, EXx, EXxEVexR } },
2432   },
2433   /* EVEX_W_0F58_P_3 */
2434   {
2435     { Bad_Opcode },
2436     { "vaddsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2437   },
2438   /* EVEX_W_0F59_P_0 */
2439   {
2440     { "vmulps", { XM, Vex, EXx, EXxEVexR } },
2441   },
2442   /* EVEX_W_0F59_P_1 */
2443   {
2444     { "vmulss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2445   },
2446   /* EVEX_W_0F59_P_2 */
2447   {
2448     { Bad_Opcode },
2449     { "vmulpd", { XM, Vex, EXx, EXxEVexR } },
2450   },
2451   /* EVEX_W_0F59_P_3 */
2452   {
2453     { Bad_Opcode },
2454     { "vmulsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2455   },
2456   /* EVEX_W_0F5A_P_0 */
2457   {
2458     { "vcvtps2pd",   { XM, EXEvexHalfBcstXmmq, EXxEVexS } },
2459   },
2460   /* EVEX_W_0F5A_P_1 */
2461   {
2462     { "vcvtss2sd",      { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2463   },
2464   /* EVEX_W_0F5A_P_2 */
2465   {
2466     { Bad_Opcode },
2467     { "vcvtpd2ps",      { XMxmmq, EXx, EXxEVexR } },
2468   },
2469   /* EVEX_W_0F5A_P_3 */
2470   {
2471     { Bad_Opcode },
2472     { "vcvtsd2ss",      { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2473   },
2474   /* EVEX_W_0F5B_P_0 */
2475   {
2476     { "vcvtdq2ps",      { XM, EXx, EXxEVexR } },
2477   },
2478   /* EVEX_W_0F5B_P_1 */
2479   {
2480     { "vcvttps2dq",     { XM, EXx, EXxEVexS } },
2481   },
2482   /* EVEX_W_0F5B_P_2 */
2483   {
2484     { "vcvtps2dq",      { XM, EXx, EXxEVexR } },
2485   },
2486   /* EVEX_W_0F5C_P_0 */
2487   {
2488     { "vsubps", { XM, Vex, EXx, EXxEVexR } },
2489   },
2490   /* EVEX_W_0F5C_P_1 */
2491   {
2492     { "vsubss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2493   },
2494   /* EVEX_W_0F5C_P_2 */
2495   {
2496     { Bad_Opcode },
2497     { "vsubpd", { XM, Vex, EXx, EXxEVexR } },
2498   },
2499   /* EVEX_W_0F5C_P_3 */
2500   {
2501     { Bad_Opcode },
2502     { "vsubsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2503   },
2504   /* EVEX_W_0F5D_P_0 */
2505   {
2506     { "vminps", { XM, Vex, EXx, EXxEVexS } },
2507   },
2508   /* EVEX_W_0F5D_P_1 */
2509   {
2510     { "vminss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2511   },
2512   /* EVEX_W_0F5D_P_2 */
2513   {
2514     { Bad_Opcode },
2515     { "vminpd", { XM, Vex, EXx, EXxEVexS } },
2516   },
2517   /* EVEX_W_0F5D_P_3 */
2518   {
2519     { Bad_Opcode },
2520     { "vminsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS } },
2521   },
2522   /* EVEX_W_0F5E_P_0 */
2523   {
2524     { "vdivps", { XM, Vex, EXx, EXxEVexR } },
2525   },
2526   /* EVEX_W_0F5E_P_1 */
2527   {
2528     { "vdivss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2529   },
2530   /* EVEX_W_0F5E_P_2 */
2531   {
2532     { Bad_Opcode },
2533     { "vdivpd", { XM, Vex, EXx, EXxEVexR } },
2534   },
2535   /* EVEX_W_0F5E_P_3 */
2536   {
2537     { Bad_Opcode },
2538     { "vdivsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2539   },
2540   /* EVEX_W_0F5F_P_0 */
2541   {
2542     { "vmaxps", { XM, Vex, EXx, EXxEVexS } },
2543   },
2544   /* EVEX_W_0F5F_P_1 */
2545   {
2546     { "vmaxss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2547   },
2548   /* EVEX_W_0F5F_P_2 */
2549   {
2550     { Bad_Opcode },
2551     { "vmaxpd", { XM, Vex, EXx, EXxEVexS } },
2552   },
2553   /* EVEX_W_0F5F_P_3 */
2554   {
2555     { Bad_Opcode },
2556     { "vmaxsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS } },
2557   },
2558   /* EVEX_W_0F62_P_2 */
2559   {
2560     { "vpunpckldq",     { XM, Vex, EXx } },
2561   },
2562   /* EVEX_W_0F66_P_2 */
2563   {
2564     { "vpcmpgtd",       { XMask, Vex, EXx } },
2565   },
2566   /* EVEX_W_0F6A_P_2 */
2567   {
2568     { "vpunpckhdq",     { XM, Vex, EXx } },
2569   },
2570   /* EVEX_W_0F6C_P_2 */
2571   {
2572     { Bad_Opcode },
2573     { "vpunpcklqdq",    { XM, Vex, EXx } },
2574   },
2575   /* EVEX_W_0F6D_P_2 */
2576   {
2577     { Bad_Opcode },
2578     { "vpunpckhqdq",    { XM, Vex, EXx } },
2579   },
2580   /* EVEX_W_0F6E_P_2 */
2581   {
2582     { "vmovd",  { XMScalar, Ed } },
2583     { "vmovq",  { XMScalar, Eq } },
2584   },
2585   /* EVEX_W_0F6F_P_1 */
2586   {
2587     { "vmovdqu32",      { XM, EXEvexXNoBcst } },
2588     { "vmovdqu64",      { XM, EXEvexXNoBcst } },
2589   },
2590   /* EVEX_W_0F6F_P_2 */
2591   {
2592     { "vmovdqa32",      { XM, EXEvexXNoBcst } },
2593     { "vmovdqa64",      { XM, EXEvexXNoBcst } },
2594   },
2595   /* EVEX_W_0F70_P_2 */
2596   {
2597     { "vpshufd",        { XM, EXx, Ib } },
2598   },
2599   /* EVEX_W_0F72_R_2_P_2 */
2600   {
2601     { "vpsrld", { Vex, EXx, Ib } },
2602   },
2603   /* EVEX_W_0F72_R_6_P_2 */
2604   {
2605     { "vpslld", { Vex, EXx, Ib } },
2606   },
2607   /* EVEX_W_0F73_R_2_P_2 */
2608   {
2609     { Bad_Opcode },
2610     { "vpsrlq", { Vex, EXx, Ib } },
2611   },
2612   /* EVEX_W_0F73_R_6_P_2 */
2613   {
2614     { Bad_Opcode },
2615     { "vpsllq", { Vex, EXx, Ib } },
2616   },
2617   /* EVEX_W_0F76_P_2 */
2618   {
2619     { "vpcmpeqd",       { XMask, Vex, EXx } },
2620   },
2621   /* EVEX_W_0F78_P_0 */
2622   {
2623     { "vcvttps2udq",    { XM, EXx, EXxEVexS } },
2624     { "vcvttpd2udq",    { XMxmmq, EXx, EXxEVexS } },
2625   },
2626   /* EVEX_W_0F79_P_0 */
2627   {
2628     { "vcvtps2udq",     { XM, EXx, EXxEVexR } },
2629     { "vcvtpd2udq",     { XMxmmq, EXx, EXxEVexR } },
2630   },
2631   /* EVEX_W_0F7A_P_1 */
2632   {
2633     { "vcvtudq2pd",     { XM, EXEvexHalfBcstXmmq } },
2634   },
2635   /* EVEX_W_0F7A_P_3 */
2636   {
2637     { "vcvtudq2ps",     { XM, EXx, EXxEVexR } },
2638   },
2639   /* EVEX_W_0F7B_P_1 */
2640   {
2641     { "vcvtusi2ss",     { XMScalar, VexScalar, EXxEVexR, Ed } },
2642     { "vcvtusi2ss",     { XMScalar, VexScalar, EXxEVexR, Eq } },
2643   },
2644   /* EVEX_W_0F7B_P_3 */
2645   {
2646     { "vcvtusi2sd",     { XMScalar, VexScalar, Ed } },
2647     { "vcvtusi2sd",     { XMScalar, VexScalar, EXxEVexR, Eq } },
2648   },
2649   /* EVEX_W_0F7E_P_1 */
2650   {
2651     { Bad_Opcode },
2652     { "vmovq",  { XMScalar, EXxmm_mq } },
2653   },
2654   /* EVEX_W_0F7E_P_2 */
2655   {
2656     { "vmovd",  { Ed, XMScalar } },
2657     { "vmovq",  { Eq, XMScalar } },
2658   },
2659   /* EVEX_W_0F7F_P_1 */
2660   {
2661     { "vmovdqu32",      { EXxS, XM } },
2662     { "vmovdqu64",      { EXxS, XM } },
2663   },
2664   /* EVEX_W_0F7F_P_2 */
2665   {
2666     { "vmovdqa32",      { EXxS, XM } },
2667     { "vmovdqa64",      { EXxS, XM } },
2668   },
2669   /* EVEX_W_0FC2_P_0 */
2670   {
2671     { "vcmpps", { XMask, Vex, EXx, EXxEVexS, VCMP } },
2672   },
2673   /* EVEX_W_0FC2_P_1 */
2674   {
2675     { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, VCMP } },
2676   },
2677   /* EVEX_W_0FC2_P_2 */
2678   {
2679     { Bad_Opcode },
2680     { "vcmppd", { XMask, Vex, EXx, EXxEVexS, VCMP } },
2681   },
2682   /* EVEX_W_0FC2_P_3 */
2683   {
2684     { Bad_Opcode },
2685     { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, VCMP } },
2686   },
2687   /* EVEX_W_0FC6_P_0 */
2688   {
2689     { "vshufps",        { XM, Vex, EXx, Ib } },
2690   },
2691   /* EVEX_W_0FC6_P_2 */
2692   {
2693     { Bad_Opcode },
2694     { "vshufpd",        { XM, Vex, EXx, Ib } },
2695   },
2696   /* EVEX_W_0FD2_P_2 */
2697   {
2698     { "vpsrld", { XM, Vex, EXxmm } },
2699   },
2700   /* EVEX_W_0FD3_P_2 */
2701   {
2702     { Bad_Opcode },
2703     { "vpsrlq", { XM, Vex, EXxmm } },
2704   },
2705   /* EVEX_W_0FD4_P_2 */
2706   {
2707     { Bad_Opcode },
2708     { "vpaddq", { XM, Vex, EXx } },
2709   },
2710   /* EVEX_W_0FD6_P_2 */
2711   {
2712     { Bad_Opcode },
2713     { "vmovq",  { EXxmm_mq, XMScalar } },
2714   },
2715   /* EVEX_W_0FE6_P_1 */
2716   {
2717     { "vcvtdq2pd",      { XM, EXEvexHalfBcstXmmq } },
2718   },
2719   /* EVEX_W_0FE6_P_2 */
2720   {
2721     { Bad_Opcode },
2722     { "vcvttpd2dq",     { XMxmmq, EXx, EXxEVexS } },
2723   },
2724   /* EVEX_W_0FE6_P_3 */
2725   {
2726     { Bad_Opcode },
2727     { "vcvtpd2dq",      { XMxmmq, EXx, EXxEVexR } },
2728   },
2729   /* EVEX_W_0FE7_P_2 */
2730   {
2731     { "vmovntdq",       { EXEvexXNoBcst, XM } },
2732   },
2733   /* EVEX_W_0FF2_P_2 */
2734   {
2735     { "vpslld", { XM, Vex, EXxmm } },
2736   },
2737   /* EVEX_W_0FF3_P_2 */
2738   {
2739     { Bad_Opcode },
2740     { "vpsllq", { XM, Vex, EXxmm } },
2741   },
2742   /* EVEX_W_0FF4_P_2 */
2743   {
2744     { Bad_Opcode },
2745     { "vpmuludq",       { XM, Vex, EXx } },
2746   },
2747   /* EVEX_W_0FFA_P_2 */
2748   {
2749     { "vpsubd", { XM, Vex, EXx } },
2750   },
2751   /* EVEX_W_0FFB_P_2 */
2752   {
2753     { Bad_Opcode },
2754     { "vpsubq", { XM, Vex, EXx } },
2755   },
2756   /* EVEX_W_0FFE_P_2 */
2757   {
2758     { "vpaddd", { XM, Vex, EXx } },
2759   },
2760
2761   /* EVEX_W_0F380C_P_2 */
2762   {
2763     { "vpermilps",      { XM, Vex, EXx } },
2764   },
2765   /* EVEX_W_0F380D_P_2 */
2766   {
2767     { Bad_Opcode },
2768     { "vpermilpd",      { XM, Vex, EXx } },
2769   },
2770   /* EVEX_W_0F3811_P_1 */
2771   {
2772     { "vpmovusdb",      { EXxmmqd, XM } },
2773   },
2774   /* EVEX_W_0F3812_P_1 */
2775   {
2776     { "vpmovusqb",      { EXxmmdw, XM } },
2777   },
2778   /* EVEX_W_0F3813_P_1 */
2779   {
2780     { "vpmovusdw",      { EXxmmq, XM } },
2781   },
2782   /* EVEX_W_0F3813_P_2 */
2783   {
2784     { "vcvtph2ps",      { XM, EXxmmq, EXxEVexS } },
2785   },
2786   /* EVEX_W_0F3814_P_1 */
2787   {
2788     { "vpmovusqw",      { EXxmmqd, XM } },
2789   },
2790   /* EVEX_W_0F3815_P_1 */
2791   {
2792     { "vpmovusqd",      { EXxmmq, XM } },
2793   },
2794   /* EVEX_W_0F3818_P_2 */
2795   {
2796     { "vbroadcastss",   { XM, EXxmm_md } },
2797   },
2798   /* EVEX_W_0F3819_P_2 */
2799   {
2800     { Bad_Opcode },
2801     { "vbroadcastsd",   { XM, EXxmm_mq } },
2802   },
2803   /* EVEX_W_0F381A_P_2 */
2804   {
2805     { "vbroadcastf32x4",        { XM, EXxmm } },
2806   },
2807   /* EVEX_W_0F381B_P_2 */
2808   {
2809     { Bad_Opcode },
2810     { "vbroadcastf64x4",        { XM, EXymm } },
2811   },
2812   /* EVEX_W_0F381E_P_2 */
2813   {
2814     { "vpabsd", { XM, EXx } },
2815   },
2816   /* EVEX_W_0F381F_P_2 */
2817   {
2818     { Bad_Opcode },
2819     { "vpabsq", { XM, EXx } },
2820   },
2821   /* EVEX_W_0F3821_P_1 */
2822   {
2823     { "vpmovsdb",       { EXxmmqd, XM } },
2824   },
2825   /* EVEX_W_0F3822_P_1 */
2826   {
2827     { "vpmovsqb",       { EXxmmdw, XM } },
2828   },
2829   /* EVEX_W_0F3823_P_1 */
2830   {
2831     { "vpmovsdw",       { EXxmmq, XM } },
2832   },
2833   /* EVEX_W_0F3824_P_1 */
2834   {
2835     { "vpmovsqw",       { EXxmmqd, XM } },
2836   },
2837   /* EVEX_W_0F3825_P_1 */
2838   {
2839     { "vpmovsqd",       { EXxmmq, XM } },
2840   },
2841   /* EVEX_W_0F3825_P_2 */
2842   {
2843     { "vpmovsxdq",      { XM, EXxmmq } },
2844   },
2845   /* EVEX_W_0F3828_P_2 */
2846   {
2847     { Bad_Opcode },
2848     { "vpmuldq",        { XM, Vex, EXx } },
2849   },
2850   /* EVEX_W_0F3829_P_2 */
2851   {
2852     { Bad_Opcode },
2853     { "vpcmpeqq",       { XMask, Vex, EXx } },
2854   },
2855   /* EVEX_W_0F382A_P_1 */
2856   {
2857     { Bad_Opcode },
2858     { "vpbroadcastmb2q",        { XM, MaskR } },
2859   },
2860   /* EVEX_W_0F382A_P_2 */
2861   {
2862     { "vmovntdqa",      { XM, EXEvexXNoBcst } },
2863   },
2864   /* EVEX_W_0F3831_P_1 */
2865   {
2866     { "vpmovdb",        { EXxmmqd, XM } },
2867   },
2868   /* EVEX_W_0F3832_P_1 */
2869   {
2870     { "vpmovqb",        { EXxmmdw, XM } },
2871   },
2872   /* EVEX_W_0F3833_P_1 */
2873   {
2874     { "vpmovdw",        { EXxmmq, XM } },
2875   },
2876   /* EVEX_W_0F3834_P_1 */
2877   {
2878     { "vpmovqw",        { EXxmmqd, XM } },
2879   },
2880   /* EVEX_W_0F3835_P_1 */
2881   {
2882     { "vpmovqd",        { EXxmmq, XM } },
2883   },
2884   /* EVEX_W_0F3835_P_2 */
2885   {
2886     { "vpmovzxdq",      { XM, EXxmmq } },
2887   },
2888   /* EVEX_W_0F3837_P_2 */
2889   {
2890     { Bad_Opcode },
2891     { "vpcmpgtq",       { XMask, Vex, EXx } },
2892   },
2893   /* EVEX_W_0F383A_P_1 */
2894   {
2895     { "vpbroadcastmw2d",        { XM, MaskR } },
2896   },
2897   /* EVEX_W_0F3840_P_2 */
2898   {
2899     { "vpmulld",        { XM, Vex, EXx } },
2900   },
2901   /* EVEX_W_0F3858_P_2 */
2902   {
2903     { "vpbroadcastd",   { XM, EXxmm_md } },
2904   },
2905   /* EVEX_W_0F3859_P_2 */
2906   {
2907     { Bad_Opcode },
2908     { "vpbroadcastq",   { XM, EXxmm_mq } },
2909   },
2910   /* EVEX_W_0F385A_P_2 */
2911   {
2912     { "vbroadcasti32x4",        { XM, EXxmm } },
2913   },
2914   /* EVEX_W_0F385B_P_2 */
2915   {
2916     { Bad_Opcode },
2917     { "vbroadcasti64x4",        { XM, EXymm } },
2918   },
2919   /* EVEX_W_0F3891_P_2 */
2920   {
2921     { "vpgatherqd",     { XMxmmq, MVexVSIBQWpX } },
2922     { "vpgatherqq",     { XM, MVexVSIBQWpX } },
2923   },
2924   /* EVEX_W_0F3893_P_2 */
2925   {
2926     { "vgatherqps",     { XMxmmq, MVexVSIBQWpX } },
2927     { "vgatherqpd",     { XM, MVexVSIBQWpX } },
2928   },
2929   /* EVEX_W_0F38A1_P_2 */
2930   {
2931     { "vpscatterqd",    { MVexVSIBQWpX, XMxmmq } },
2932     { "vpscatterqq",    { MVexVSIBQWpX, XM } },
2933   },
2934   /* EVEX_W_0F38A3_P_2 */
2935   {
2936     { "vscatterqps",    { MVexVSIBQWpX, XMxmmq } },
2937     { "vscatterqpd",    { MVexVSIBQWpX, XM } },
2938   },
2939   /* EVEX_W_0F38C7_R_1_P_2 */
2940   {
2941     { "vgatherpf0qps",  { MVexVSIBDWpX } },
2942     { "vgatherpf0qpd",  { MVexVSIBQWpX } },
2943   },
2944   /* EVEX_W_0F38C7_R_2_P_2 */
2945   {
2946     { "vgatherpf1qps",  { MVexVSIBDWpX } },
2947     { "vgatherpf1qpd",  { MVexVSIBQWpX } },
2948   },
2949   /* EVEX_W_0F38C7_R_5_P_2 */
2950   {
2951     { "vscatterpf0qps",  { MVexVSIBDWpX } },
2952     { "vscatterpf0qpd",  { MVexVSIBQWpX } },
2953   },
2954   /* EVEX_W_0F38C7_R_6_P_2 */
2955   {
2956     { "vscatterpf1qps",  { MVexVSIBDWpX } },
2957     { "vscatterpf1qpd",  { MVexVSIBQWpX } },
2958   },
2959
2960   /* EVEX_W_0F3A00_P_2 */
2961   {
2962     { Bad_Opcode },
2963     { "vpermq", { XM, EXx, Ib } },
2964   },
2965   /* EVEX_W_0F3A01_P_2 */
2966   {
2967     { Bad_Opcode },
2968     { "vpermpd",        { XM, EXx, Ib } },
2969   },
2970   /* EVEX_W_0F3A04_P_2 */
2971   {
2972     { "vpermilps",      { XM, EXx, Ib } },
2973   },
2974   /* EVEX_W_0F3A05_P_2 */
2975   {
2976     { Bad_Opcode },
2977     { "vpermilpd",      { XM, EXx, Ib } },
2978   },
2979   /* EVEX_W_0F3A08_P_2 */
2980   {
2981     { "vrndscaleps",    { XM, EXx, EXxEVexS, Ib } },
2982   },
2983   /* EVEX_W_0F3A09_P_2 */
2984   {
2985     { Bad_Opcode },
2986     { "vrndscalepd",    { XM, EXx, EXxEVexS, Ib } },
2987   },
2988   /* EVEX_W_0F3A0A_P_2 */
2989   {
2990     { "vrndscaless",    { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib } },
2991   },
2992   /* EVEX_W_0F3A0B_P_2 */
2993   {
2994     { Bad_Opcode },
2995     { "vrndscalesd",    { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib } },
2996   },
2997   /* EVEX_W_0F3A18_P_2 */
2998   {
2999     { "vinsertf32x4",   { XM, Vex, EXxmm, Ib } },
3000   },
3001   /* EVEX_W_0F3A19_P_2 */
3002   {
3003     { "vextractf32x4",  { EXxmm, XM, Ib } },
3004   },
3005   /* EVEX_W_0F3A1A_P_2 */
3006   {
3007     { Bad_Opcode },
3008     { "vinsertf64x4",   { XM, Vex, EXxmmq, Ib } },
3009   },
3010   /* EVEX_W_0F3A1B_P_2 */
3011   {
3012     { Bad_Opcode },
3013     { "vextractf64x4",  { EXxmmq, XM, Ib } },
3014   },
3015   /* EVEX_W_0F3A1D_P_2 */
3016   {
3017     { "vcvtps2ph",      { EXxmmq, XM, EXxEVexS, Ib } },
3018   },
3019   /* EVEX_W_0F3A21_P_2 */
3020   {
3021     { "vinsertps",      { XMM, Vex, EXxmm_md, Ib } },
3022   },
3023   /* EVEX_W_0F3A23_P_2 */
3024   {
3025     { "vshuff32x4",     { XM, Vex, EXx, Ib } },
3026     { "vshuff64x2",     { XM, Vex, EXx, Ib } },
3027   },
3028   /* EVEX_W_0F3A38_P_2 */
3029   {
3030     { "vinserti32x4",   { XM, Vex, EXxmm, Ib } },
3031   },
3032   /* EVEX_W_0F3A39_P_2 */
3033   {
3034     { "vextracti32x4",  { EXxmm, XM, Ib } },
3035   },
3036   /* EVEX_W_0F3A3A_P_2 */
3037   {
3038     { Bad_Opcode },
3039     { "vinserti64x4",   { XM, Vex, EXxmmq, Ib } },
3040   },
3041   /* EVEX_W_0F3A3B_P_2 */
3042   {
3043     { Bad_Opcode },
3044     { "vextracti64x4",  { EXxmmq, XM, Ib } },
3045   },
3046   /* EVEX_W_0F3A43_P_2 */
3047   {
3048     { "vshufi32x4",     { XM, Vex, EXx, Ib } },
3049     { "vshufi64x2",     { XM, Vex, EXx, Ib } },
3050   },
3051 #endif /* NEED_VEX_W_TABLE */
3052 #ifdef NEED_MOD_TABLE
3053   {
3054     /* MOD_EVEX_0F10_PREFIX_1 */
3055     { VEX_W_TABLE (EVEX_W_0F10_P_1_M_0) },
3056     { VEX_W_TABLE (EVEX_W_0F10_P_1_M_1) },
3057   },
3058   {
3059     /* MOD_EVEX_0F10_PREFIX_3 */
3060     { VEX_W_TABLE (EVEX_W_0F10_P_3_M_0) },
3061     { VEX_W_TABLE (EVEX_W_0F10_P_3_M_1) },
3062   },
3063   {
3064     /* MOD_EVEX_0F11_PREFIX_1 */
3065     { VEX_W_TABLE (EVEX_W_0F11_P_1_M_0) },
3066     { VEX_W_TABLE (EVEX_W_0F11_P_1_M_1) },
3067   },
3068   {
3069     /* MOD_EVEX_0F11_PREFIX_3 */
3070     { VEX_W_TABLE (EVEX_W_0F11_P_3_M_0) },
3071     { VEX_W_TABLE (EVEX_W_0F11_P_3_M_1) },
3072   },
3073   {
3074     /* MOD_EVEX_0F12_PREFIX_0 */
3075     { VEX_W_TABLE (EVEX_W_0F12_P_0_M_0) },
3076     { VEX_W_TABLE (EVEX_W_0F12_P_0_M_1) },
3077   },
3078   {
3079     /* MOD_EVEX_0F16_PREFIX_0 */
3080     { VEX_W_TABLE (EVEX_W_0F16_P_0_M_0) },
3081     { VEX_W_TABLE (EVEX_W_0F16_P_0_M_1) },
3082   },
3083   {
3084     /* MOD_EVEX_0F38C6_REG_1 */
3085     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) },
3086   },
3087   {
3088     /* MOD_EVEX_0F38C6_REG_2 */
3089     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_2) },
3090   },
3091   {
3092     /* MOD_EVEX_0F38C6_REG_5 */
3093     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_5) },
3094   },
3095   {
3096     /* MOD_EVEX_0F38C6_REG_6 */
3097     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_6) },
3098   },
3099   {
3100     /* MOD_EVEX_0F38C7_REG_1 */
3101     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_1) },
3102   },
3103   {
3104     /* MOD_EVEX_0F38C7_REG_2 */
3105     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_2) },
3106   },
3107   {
3108     /* MOD_EVEX_0F38C7_REG_5 */
3109     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_5) },
3110   },
3111   {
3112     /* MOD_EVEX_0F38C7_REG_6 */
3113     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
3114   },
3115 #endif /* NEED_MOD_TABLE */