[PATCH 49/57][Arm][OBJDUMP] Add support for MVE complex number instructions
[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     { PREFIX_TABLE (PREFIX_EVEX_0F54) },
102     { PREFIX_TABLE (PREFIX_EVEX_0F55) },
103     { PREFIX_TABLE (PREFIX_EVEX_0F56) },
104     { PREFIX_TABLE (PREFIX_EVEX_0F57) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F60) },
116     { PREFIX_TABLE (PREFIX_EVEX_0F61) },
117     { PREFIX_TABLE (PREFIX_EVEX_0F62) },
118     { PREFIX_TABLE (PREFIX_EVEX_0F63) },
119     { PREFIX_TABLE (PREFIX_EVEX_0F64) },
120     { PREFIX_TABLE (PREFIX_EVEX_0F65) },
121     { PREFIX_TABLE (PREFIX_EVEX_0F66) },
122     { PREFIX_TABLE (PREFIX_EVEX_0F67) },
123     /* 68 */
124     { PREFIX_TABLE (PREFIX_EVEX_0F68) },
125     { PREFIX_TABLE (PREFIX_EVEX_0F69) },
126     { PREFIX_TABLE (PREFIX_EVEX_0F6A) },
127     { PREFIX_TABLE (PREFIX_EVEX_0F6B) },
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     { REG_TABLE (REG_EVEX_0F71) },
135     { REG_TABLE (REG_EVEX_0F72) },
136     { REG_TABLE (REG_EVEX_0F73) },
137     { PREFIX_TABLE (PREFIX_EVEX_0F74) },
138     { PREFIX_TABLE (PREFIX_EVEX_0F75) },
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     { PREFIX_TABLE (PREFIX_EVEX_0FC4) },
228     { PREFIX_TABLE (PREFIX_EVEX_0FC5) },
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     { PREFIX_TABLE (PREFIX_EVEX_0FD1) },
243     { PREFIX_TABLE (PREFIX_EVEX_0FD2) },
244     { PREFIX_TABLE (PREFIX_EVEX_0FD3) },
245     { PREFIX_TABLE (PREFIX_EVEX_0FD4) },
246     { PREFIX_TABLE (PREFIX_EVEX_0FD5) },
247     { PREFIX_TABLE (PREFIX_EVEX_0FD6) },
248     { Bad_Opcode },
249     /* D8 */
250     { PREFIX_TABLE (PREFIX_EVEX_0FD8) },
251     { PREFIX_TABLE (PREFIX_EVEX_0FD9) },
252     { PREFIX_TABLE (PREFIX_EVEX_0FDA) },
253     { PREFIX_TABLE (PREFIX_EVEX_0FDB) },
254     { PREFIX_TABLE (PREFIX_EVEX_0FDC) },
255     { PREFIX_TABLE (PREFIX_EVEX_0FDD) },
256     { PREFIX_TABLE (PREFIX_EVEX_0FDE) },
257     { PREFIX_TABLE (PREFIX_EVEX_0FDF) },
258     /* E0 */
259     { PREFIX_TABLE (PREFIX_EVEX_0FE0) },
260     { PREFIX_TABLE (PREFIX_EVEX_0FE1) },
261     { PREFIX_TABLE (PREFIX_EVEX_0FE2) },
262     { PREFIX_TABLE (PREFIX_EVEX_0FE3) },
263     { PREFIX_TABLE (PREFIX_EVEX_0FE4) },
264     { PREFIX_TABLE (PREFIX_EVEX_0FE5) },
265     { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
266     { PREFIX_TABLE (PREFIX_EVEX_0FE7) },
267     /* E8 */
268     { PREFIX_TABLE (PREFIX_EVEX_0FE8) },
269     { PREFIX_TABLE (PREFIX_EVEX_0FE9) },
270     { PREFIX_TABLE (PREFIX_EVEX_0FEA) },
271     { PREFIX_TABLE (PREFIX_EVEX_0FEB) },
272     { PREFIX_TABLE (PREFIX_EVEX_0FEC) },
273     { PREFIX_TABLE (PREFIX_EVEX_0FED) },
274     { PREFIX_TABLE (PREFIX_EVEX_0FEE) },
275     { PREFIX_TABLE (PREFIX_EVEX_0FEF) },
276     /* F0 */
277     { Bad_Opcode },
278     { PREFIX_TABLE (PREFIX_EVEX_0FF1) },
279     { PREFIX_TABLE (PREFIX_EVEX_0FF2) },
280     { PREFIX_TABLE (PREFIX_EVEX_0FF3) },
281     { PREFIX_TABLE (PREFIX_EVEX_0FF4) },
282     { PREFIX_TABLE (PREFIX_EVEX_0FF5) },
283     { PREFIX_TABLE (PREFIX_EVEX_0FF6) },
284     { Bad_Opcode },
285     /* F8 */
286     { PREFIX_TABLE (PREFIX_EVEX_0FF8) },
287     { PREFIX_TABLE (PREFIX_EVEX_0FF9) },
288     { PREFIX_TABLE (PREFIX_EVEX_0FFA) },
289     { PREFIX_TABLE (PREFIX_EVEX_0FFB) },
290     { PREFIX_TABLE (PREFIX_EVEX_0FFC) },
291     { PREFIX_TABLE (PREFIX_EVEX_0FFD) },
292     { PREFIX_TABLE (PREFIX_EVEX_0FFE) },
293     { Bad_Opcode },
294   },
295   /* EVEX_0F38 */
296   {
297     /* 00 */
298     { PREFIX_TABLE (PREFIX_EVEX_0F3800) },
299     { Bad_Opcode },
300     { Bad_Opcode },
301     { Bad_Opcode },
302     { PREFIX_TABLE (PREFIX_EVEX_0F3804) },
303     { Bad_Opcode },
304     { Bad_Opcode },
305     { Bad_Opcode },
306     /* 08 */
307     { Bad_Opcode },
308     { Bad_Opcode },
309     { Bad_Opcode },
310     { PREFIX_TABLE (PREFIX_EVEX_0F380B) },
311     { PREFIX_TABLE (PREFIX_EVEX_0F380C) },
312     { PREFIX_TABLE (PREFIX_EVEX_0F380D) },
313     { Bad_Opcode },
314     { Bad_Opcode },
315     /* 10 */
316     { PREFIX_TABLE (PREFIX_EVEX_0F3810) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F381C) },
330     { PREFIX_TABLE (PREFIX_EVEX_0F381D) },
331     { PREFIX_TABLE (PREFIX_EVEX_0F381E) },
332     { PREFIX_TABLE (PREFIX_EVEX_0F381F) },
333     /* 20 */
334     { PREFIX_TABLE (PREFIX_EVEX_0F3820) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3826) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F382B) },
347     { PREFIX_TABLE (PREFIX_EVEX_0F382C) },
348     { PREFIX_TABLE (PREFIX_EVEX_0F382D) },
349     { Bad_Opcode },
350     { Bad_Opcode },
351     /* 30 */
352     { PREFIX_TABLE (PREFIX_EVEX_0F3830) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3838) },
362     { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
363     { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
364     { PREFIX_TABLE (PREFIX_EVEX_0F383B) },
365     { PREFIX_TABLE (PREFIX_EVEX_0F383C) },
366     { PREFIX_TABLE (PREFIX_EVEX_0F383D) },
367     { PREFIX_TABLE (PREFIX_EVEX_0F383E) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3850) },
389     { PREFIX_TABLE (PREFIX_EVEX_0F3851) },
390     { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
391     { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
392     { PREFIX_TABLE (PREFIX_EVEX_0F3854) },
393     { PREFIX_TABLE (PREFIX_EVEX_0F3855) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3862) },
409     { PREFIX_TABLE (PREFIX_EVEX_0F3863) },
410     { PREFIX_TABLE (PREFIX_EVEX_0F3864) },
411     { PREFIX_TABLE (PREFIX_EVEX_0F3865) },
412     { PREFIX_TABLE (PREFIX_EVEX_0F3866) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3870) },
425     { PREFIX_TABLE (PREFIX_EVEX_0F3871) },
426     { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
427     { PREFIX_TABLE (PREFIX_EVEX_0F3873) },
428     { Bad_Opcode },
429     { PREFIX_TABLE (PREFIX_EVEX_0F3875) },
430     { PREFIX_TABLE (PREFIX_EVEX_0F3876) },
431     { PREFIX_TABLE (PREFIX_EVEX_0F3877) },
432     /* 78 */
433     { PREFIX_TABLE (PREFIX_EVEX_0F3878) },
434     { PREFIX_TABLE (PREFIX_EVEX_0F3879) },
435     { PREFIX_TABLE (PREFIX_EVEX_0F387A) },
436     { PREFIX_TABLE (PREFIX_EVEX_0F387B) },
437     { PREFIX_TABLE (PREFIX_EVEX_0F387C) },
438     { PREFIX_TABLE (PREFIX_EVEX_0F387D) },
439     { PREFIX_TABLE (PREFIX_EVEX_0F387E) },
440     { PREFIX_TABLE (PREFIX_EVEX_0F387F) },
441     /* 80 */
442     { Bad_Opcode },
443     { Bad_Opcode },
444     { Bad_Opcode },
445     { PREFIX_TABLE (PREFIX_EVEX_0F3883) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F388D) },
457     { Bad_Opcode },
458     { PREFIX_TABLE (PREFIX_EVEX_0F388F) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F38B4) },
501     { PREFIX_TABLE (PREFIX_EVEX_0F38B5) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F38CF) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F38DC) },
546     { PREFIX_TABLE (PREFIX_EVEX_0F38DD) },
547     { PREFIX_TABLE (PREFIX_EVEX_0F38DE) },
548     { PREFIX_TABLE (PREFIX_EVEX_0F38DF) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3A0F) },
606     /* 10 */
607     { Bad_Opcode },
608     { Bad_Opcode },
609     { Bad_Opcode },
610     { Bad_Opcode },
611     { PREFIX_TABLE (PREFIX_EVEX_0F3A14) },
612     { PREFIX_TABLE (PREFIX_EVEX_0F3A15) },
613     { PREFIX_TABLE (PREFIX_EVEX_0F3A16) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3A20) },
626     { PREFIX_TABLE (PREFIX_EVEX_0F3A21) },
627     { PREFIX_TABLE (PREFIX_EVEX_0F3A22) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3A42) },
664     { PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
665     { PREFIX_TABLE (PREFIX_EVEX_0F3A44) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3A50) },
680     { PREFIX_TABLE (PREFIX_EVEX_0F3A51) },
681     { Bad_Opcode },
682     { Bad_Opcode },
683     { PREFIX_TABLE (PREFIX_EVEX_0F3A54) },
684     { PREFIX_TABLE (PREFIX_EVEX_0F3A55) },
685     { PREFIX_TABLE (PREFIX_EVEX_0F3A56) },
686     { PREFIX_TABLE (PREFIX_EVEX_0F3A57) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3A66) },
704     { PREFIX_TABLE (PREFIX_EVEX_0F3A67) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3A70) },
716     { PREFIX_TABLE (PREFIX_EVEX_0F3A71) },
717     { PREFIX_TABLE (PREFIX_EVEX_0F3A72) },
718     { PREFIX_TABLE (PREFIX_EVEX_0F3A73) },
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     { PREFIX_TABLE (PREFIX_EVEX_0F3ACE) },
821     { PREFIX_TABLE (PREFIX_EVEX_0F3ACF) },
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_0F71 */
882   {
883     { Bad_Opcode },
884     { Bad_Opcode },
885     { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_2) },
886     { Bad_Opcode },
887     { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_4) },
888     { Bad_Opcode },
889     { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_6) },
890   },
891   /* REG_EVEX_0F72 */
892   {
893     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_0) },
894     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_1) },
895     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_2) },
896     { Bad_Opcode },
897     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_4) },
898     { Bad_Opcode },
899     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_6) },
900   },
901   /* REG_EVEX_0F73 */
902   {
903     { Bad_Opcode },
904     { Bad_Opcode },
905     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_2) },
906     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_3) },
907     { Bad_Opcode },
908     { Bad_Opcode },
909     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_6) },
910     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_7) },
911   },
912   /* REG_EVEX_0F38C6 */
913   {
914     { Bad_Opcode },
915     { MOD_TABLE (MOD_EVEX_0F38C6_REG_1) },
916     { MOD_TABLE (MOD_EVEX_0F38C6_REG_2) },
917     { Bad_Opcode },
918     { Bad_Opcode },
919     { MOD_TABLE (MOD_EVEX_0F38C6_REG_5) },
920     { MOD_TABLE (MOD_EVEX_0F38C6_REG_6) },
921   },
922   /* REG_EVEX_0F38C7 */
923   {
924     { Bad_Opcode },
925     { MOD_TABLE (MOD_EVEX_0F38C7_REG_1) },
926     { MOD_TABLE (MOD_EVEX_0F38C7_REG_2) },
927     { Bad_Opcode },
928     { Bad_Opcode },
929     { MOD_TABLE (MOD_EVEX_0F38C7_REG_5) },
930     { MOD_TABLE (MOD_EVEX_0F38C7_REG_6) },
931   },
932 #endif /* NEED_REG_TABLE */
933
934 #ifdef NEED_PREFIX_TABLE
935   /* PREFIX_EVEX_0F10 */
936   {
937     { VEX_W_TABLE (EVEX_W_0F10_P_0) },
938     { MOD_TABLE (MOD_EVEX_0F10_PREFIX_1) },
939     { VEX_W_TABLE (EVEX_W_0F10_P_2) },
940     { MOD_TABLE (MOD_EVEX_0F10_PREFIX_3) },
941   },
942   /* PREFIX_EVEX_0F11 */
943   {
944     { VEX_W_TABLE (EVEX_W_0F11_P_0) },
945     { MOD_TABLE (MOD_EVEX_0F11_PREFIX_1) },
946     { VEX_W_TABLE (EVEX_W_0F11_P_2) },
947     { MOD_TABLE (MOD_EVEX_0F11_PREFIX_3) },
948   },
949   /* PREFIX_EVEX_0F12 */
950   {
951     { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) },
952     { VEX_W_TABLE (EVEX_W_0F12_P_1) },
953     { VEX_W_TABLE (EVEX_W_0F12_P_2) },
954     { VEX_W_TABLE (EVEX_W_0F12_P_3) },
955   },
956   /* PREFIX_EVEX_0F13 */
957   {
958     { VEX_W_TABLE (EVEX_W_0F13_P_0) },
959     { Bad_Opcode },
960     { VEX_W_TABLE (EVEX_W_0F13_P_2) },
961   },
962   /* PREFIX_EVEX_0F14 */
963   {
964     { VEX_W_TABLE (EVEX_W_0F14_P_0) },
965     { Bad_Opcode },
966     { VEX_W_TABLE (EVEX_W_0F14_P_2) },
967   },
968   /* PREFIX_EVEX_0F15 */
969   {
970     { VEX_W_TABLE (EVEX_W_0F15_P_0) },
971     { Bad_Opcode },
972     { VEX_W_TABLE (EVEX_W_0F15_P_2) },
973   },
974   /* PREFIX_EVEX_0F16 */
975   {
976     { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) },
977     { VEX_W_TABLE (EVEX_W_0F16_P_1) },
978     { VEX_W_TABLE (EVEX_W_0F16_P_2) },
979   },
980   /* PREFIX_EVEX_0F17 */
981   {
982     { VEX_W_TABLE (EVEX_W_0F17_P_0) },
983     { Bad_Opcode },
984     { VEX_W_TABLE (EVEX_W_0F17_P_2) },
985   },
986   /* PREFIX_EVEX_0F28 */
987   {
988     { VEX_W_TABLE (EVEX_W_0F28_P_0) },
989     { Bad_Opcode },
990     { VEX_W_TABLE (EVEX_W_0F28_P_2) },
991   },
992   /* PREFIX_EVEX_0F29 */
993   {
994     { VEX_W_TABLE (EVEX_W_0F29_P_0) },
995     { Bad_Opcode },
996     { VEX_W_TABLE (EVEX_W_0F29_P_2) },
997   },
998   /* PREFIX_EVEX_0F2A */
999   {
1000     { Bad_Opcode },
1001     { VEX_W_TABLE (EVEX_W_0F2A_P_1) },
1002     { Bad_Opcode },
1003     { VEX_W_TABLE (EVEX_W_0F2A_P_3) },
1004   },
1005   /* PREFIX_EVEX_0F2B */
1006   {
1007     { VEX_W_TABLE (EVEX_W_0F2B_P_0) },
1008     { Bad_Opcode },
1009     { VEX_W_TABLE (EVEX_W_0F2B_P_2) },
1010   },
1011   /* PREFIX_EVEX_0F2C */
1012   {
1013     { Bad_Opcode },
1014     { "vcvttss2si",     { Gdq, EXxmm_md, EXxEVexS }, 0 },
1015     { Bad_Opcode },
1016     { "vcvttsd2si",     { Gdq, EXxmm_mq, EXxEVexS }, 0 },
1017   },
1018   /* PREFIX_EVEX_0F2D */
1019   {
1020     { Bad_Opcode },
1021     { "vcvtss2si",      { Gdq, EXxmm_md, EXxEVexR }, 0 },
1022     { Bad_Opcode },
1023     { "vcvtsd2si",      { Gdq, EXxmm_mq, EXxEVexR }, 0 },
1024   },
1025   /* PREFIX_EVEX_0F2E */
1026   {
1027     { VEX_W_TABLE (EVEX_W_0F2E_P_0) },
1028     { Bad_Opcode },
1029     { VEX_W_TABLE (EVEX_W_0F2E_P_2) },
1030   },
1031   /* PREFIX_EVEX_0F2F */
1032   {
1033     { VEX_W_TABLE (EVEX_W_0F2F_P_0) },
1034     { Bad_Opcode },
1035     { VEX_W_TABLE (EVEX_W_0F2F_P_2) },
1036   },
1037   /* PREFIX_EVEX_0F51 */
1038   {
1039     { VEX_W_TABLE (EVEX_W_0F51_P_0) },
1040     { VEX_W_TABLE (EVEX_W_0F51_P_1) },
1041     { VEX_W_TABLE (EVEX_W_0F51_P_2) },
1042     { VEX_W_TABLE (EVEX_W_0F51_P_3) },
1043   },
1044   /* PREFIX_EVEX_0F54 */
1045   {
1046     { VEX_W_TABLE (EVEX_W_0F54_P_0) },
1047     { Bad_Opcode },
1048     { VEX_W_TABLE (EVEX_W_0F54_P_2) },
1049   },
1050   /* PREFIX_EVEX_0F55 */
1051   {
1052     { VEX_W_TABLE (EVEX_W_0F55_P_0) },
1053     { Bad_Opcode },
1054     { VEX_W_TABLE (EVEX_W_0F55_P_2) },
1055   },
1056   /* PREFIX_EVEX_0F56 */
1057   {
1058     { VEX_W_TABLE (EVEX_W_0F56_P_0) },
1059     { Bad_Opcode },
1060     { VEX_W_TABLE (EVEX_W_0F56_P_2) },
1061   },
1062   /* PREFIX_EVEX_0F57 */
1063   {
1064     { VEX_W_TABLE (EVEX_W_0F57_P_0) },
1065     { Bad_Opcode },
1066     { VEX_W_TABLE (EVEX_W_0F57_P_2) },
1067   },
1068   /* PREFIX_EVEX_0F58 */
1069   {
1070     { VEX_W_TABLE (EVEX_W_0F58_P_0) },
1071     { VEX_W_TABLE (EVEX_W_0F58_P_1) },
1072     { VEX_W_TABLE (EVEX_W_0F58_P_2) },
1073     { VEX_W_TABLE (EVEX_W_0F58_P_3) },
1074   },
1075   /* PREFIX_EVEX_0F59 */
1076   {
1077     { VEX_W_TABLE (EVEX_W_0F59_P_0) },
1078     { VEX_W_TABLE (EVEX_W_0F59_P_1) },
1079     { VEX_W_TABLE (EVEX_W_0F59_P_2) },
1080     { VEX_W_TABLE (EVEX_W_0F59_P_3) },
1081   },
1082   /* PREFIX_EVEX_0F5A */
1083   {
1084     { VEX_W_TABLE (EVEX_W_0F5A_P_0) },
1085     { VEX_W_TABLE (EVEX_W_0F5A_P_1) },
1086     { VEX_W_TABLE (EVEX_W_0F5A_P_2) },
1087     { VEX_W_TABLE (EVEX_W_0F5A_P_3) },
1088   },
1089   /* PREFIX_EVEX_0F5B */
1090   {
1091     { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
1092     { VEX_W_TABLE (EVEX_W_0F5B_P_1) },
1093     { VEX_W_TABLE (EVEX_W_0F5B_P_2) },
1094   },
1095   /* PREFIX_EVEX_0F5C */
1096   {
1097     { VEX_W_TABLE (EVEX_W_0F5C_P_0) },
1098     { VEX_W_TABLE (EVEX_W_0F5C_P_1) },
1099     { VEX_W_TABLE (EVEX_W_0F5C_P_2) },
1100     { VEX_W_TABLE (EVEX_W_0F5C_P_3) },
1101   },
1102   /* PREFIX_EVEX_0F5D */
1103   {
1104     { VEX_W_TABLE (EVEX_W_0F5D_P_0) },
1105     { VEX_W_TABLE (EVEX_W_0F5D_P_1) },
1106     { VEX_W_TABLE (EVEX_W_0F5D_P_2) },
1107     { VEX_W_TABLE (EVEX_W_0F5D_P_3) },
1108   },
1109   /* PREFIX_EVEX_0F5E */
1110   {
1111     { VEX_W_TABLE (EVEX_W_0F5E_P_0) },
1112     { VEX_W_TABLE (EVEX_W_0F5E_P_1) },
1113     { VEX_W_TABLE (EVEX_W_0F5E_P_2) },
1114     { VEX_W_TABLE (EVEX_W_0F5E_P_3) },
1115   },
1116   /* PREFIX_EVEX_0F5F */
1117   {
1118     { VEX_W_TABLE (EVEX_W_0F5F_P_0) },
1119     { VEX_W_TABLE (EVEX_W_0F5F_P_1) },
1120     { VEX_W_TABLE (EVEX_W_0F5F_P_2) },
1121     { VEX_W_TABLE (EVEX_W_0F5F_P_3) },
1122   },
1123   /* PREFIX_EVEX_0F60 */
1124   {
1125     { Bad_Opcode },
1126     { Bad_Opcode },
1127     { "vpunpcklbw",     { XM, Vex, EXx }, 0 },
1128   },
1129   /* PREFIX_EVEX_0F61 */
1130   {
1131     { Bad_Opcode },
1132     { Bad_Opcode },
1133     { "vpunpcklwd",     { XM, Vex, EXx }, 0 },
1134   },
1135   /* PREFIX_EVEX_0F62 */
1136   {
1137     { Bad_Opcode },
1138     { Bad_Opcode },
1139     { VEX_W_TABLE (EVEX_W_0F62_P_2) },
1140   },
1141   /* PREFIX_EVEX_0F63 */
1142   {
1143     { Bad_Opcode },
1144     { Bad_Opcode },
1145     { "vpacksswb",      { XM, Vex, EXx }, 0 },
1146   },
1147   /* PREFIX_EVEX_0F64 */
1148   {
1149     { Bad_Opcode },
1150     { Bad_Opcode },
1151     { "vpcmpgtb",       { XMask, Vex, EXx }, 0 },
1152   },
1153   /* PREFIX_EVEX_0F65 */
1154   {
1155     { Bad_Opcode },
1156     { Bad_Opcode },
1157     { "vpcmpgtw",       { XMask, Vex, EXx }, 0 },
1158   },
1159   /* PREFIX_EVEX_0F66 */
1160   {
1161     { Bad_Opcode },
1162     { Bad_Opcode },
1163     { VEX_W_TABLE (EVEX_W_0F66_P_2) },
1164   },
1165   /* PREFIX_EVEX_0F67 */
1166   {
1167     { Bad_Opcode },
1168     { Bad_Opcode },
1169     { "vpackuswb",      { XM, Vex, EXx }, 0 },
1170   },
1171   /* PREFIX_EVEX_0F68 */
1172   {
1173     { Bad_Opcode },
1174     { Bad_Opcode },
1175     { "vpunpckhbw",     { XM, Vex, EXx }, 0 },
1176   },
1177   /* PREFIX_EVEX_0F69 */
1178   {
1179     { Bad_Opcode },
1180     { Bad_Opcode },
1181     { "vpunpckhwd",     { XM, Vex, EXx }, 0 },
1182   },
1183   /* PREFIX_EVEX_0F6A */
1184   {
1185     { Bad_Opcode },
1186     { Bad_Opcode },
1187     { VEX_W_TABLE (EVEX_W_0F6A_P_2) },
1188   },
1189   /* PREFIX_EVEX_0F6B */
1190   {
1191     { Bad_Opcode },
1192     { Bad_Opcode },
1193     { VEX_W_TABLE (EVEX_W_0F6B_P_2) },
1194   },
1195   /* PREFIX_EVEX_0F6C */
1196   {
1197     { Bad_Opcode },
1198     { Bad_Opcode },
1199     { VEX_W_TABLE (EVEX_W_0F6C_P_2) },
1200   },
1201   /* PREFIX_EVEX_0F6D */
1202   {
1203     { Bad_Opcode },
1204     { Bad_Opcode },
1205     { VEX_W_TABLE (EVEX_W_0F6D_P_2) },
1206   },
1207   /* PREFIX_EVEX_0F6E */
1208   {
1209     { Bad_Opcode },
1210     { Bad_Opcode },
1211     { EVEX_LEN_TABLE (EVEX_LEN_0F6E_P_2) },
1212   },
1213   /* PREFIX_EVEX_0F6F */
1214   {
1215     { Bad_Opcode },
1216     { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
1217     { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
1218     { VEX_W_TABLE (EVEX_W_0F6F_P_3) },
1219   },
1220   /* PREFIX_EVEX_0F70 */
1221   {
1222     { Bad_Opcode },
1223     { "vpshufhw",       { XM, EXx, Ib }, 0 },
1224     { VEX_W_TABLE (EVEX_W_0F70_P_2) },
1225     { "vpshuflw",       { XM, EXx, Ib }, 0 },
1226   },
1227   /* PREFIX_EVEX_0F71_REG_2 */
1228   {
1229     { Bad_Opcode },
1230     { Bad_Opcode },
1231     { "vpsrlw", { Vex, EXx, Ib }, 0 },
1232   },
1233   /* PREFIX_EVEX_0F71_REG_4 */
1234   {
1235     { Bad_Opcode },
1236     { Bad_Opcode },
1237     { "vpsraw", { Vex, EXx, Ib }, 0 },
1238   },
1239   /* PREFIX_EVEX_0F71_REG_6 */
1240   {
1241     { Bad_Opcode },
1242     { Bad_Opcode },
1243     { "vpsllw", { Vex, EXx, Ib }, 0 },
1244   },
1245   /* PREFIX_EVEX_0F72_REG_0 */
1246   {
1247     { Bad_Opcode },
1248     { Bad_Opcode },
1249     { "vpror%LW",       { Vex, EXx, Ib }, 0 },
1250   },
1251   /* PREFIX_EVEX_0F72_REG_1 */
1252   {
1253     { Bad_Opcode },
1254     { Bad_Opcode },
1255     { "vprol%LW",       { Vex, EXx, Ib }, 0 },
1256   },
1257   /* PREFIX_EVEX_0F72_REG_2 */
1258   {
1259     { Bad_Opcode },
1260     { Bad_Opcode },
1261     { VEX_W_TABLE (EVEX_W_0F72_R_2_P_2) },
1262   },
1263   /* PREFIX_EVEX_0F72_REG_4 */
1264   {
1265     { Bad_Opcode },
1266     { Bad_Opcode },
1267     { "vpsra%LW",       { Vex, EXx, Ib }, 0 },
1268   },
1269   /* PREFIX_EVEX_0F72_REG_6 */
1270   {
1271     { Bad_Opcode },
1272     { Bad_Opcode },
1273     { VEX_W_TABLE (EVEX_W_0F72_R_6_P_2) },
1274   },
1275   /* PREFIX_EVEX_0F73_REG_2 */
1276   {
1277     { Bad_Opcode },
1278     { Bad_Opcode },
1279     { VEX_W_TABLE (EVEX_W_0F73_R_2_P_2) },
1280   },
1281   /* PREFIX_EVEX_0F73_REG_3 */
1282   {
1283     { Bad_Opcode },
1284     { Bad_Opcode },
1285     { "vpsrldq",        { Vex, EXx, Ib }, 0 },
1286   },
1287   /* PREFIX_EVEX_0F73_REG_6 */
1288   {
1289     { Bad_Opcode },
1290     { Bad_Opcode },
1291     { VEX_W_TABLE (EVEX_W_0F73_R_6_P_2) },
1292   },
1293   /* PREFIX_EVEX_0F73_REG_7 */
1294   {
1295     { Bad_Opcode },
1296     { Bad_Opcode },
1297     { "vpslldq",        { Vex, EXx, Ib }, 0 },
1298   },
1299   /* PREFIX_EVEX_0F74 */
1300   {
1301     { Bad_Opcode },
1302     { Bad_Opcode },
1303     { "vpcmpeqb",       { XMask, Vex, EXx }, 0 },
1304   },
1305   /* PREFIX_EVEX_0F75 */
1306   {
1307     { Bad_Opcode },
1308     { Bad_Opcode },
1309     { "vpcmpeqw",       { XMask, Vex, EXx }, 0 },
1310   },
1311   /* PREFIX_EVEX_0F76 */
1312   {
1313     { Bad_Opcode },
1314     { Bad_Opcode },
1315     { VEX_W_TABLE (EVEX_W_0F76_P_2) },
1316   },
1317   /* PREFIX_EVEX_0F78 */
1318   {
1319     { VEX_W_TABLE (EVEX_W_0F78_P_0) },
1320     { "vcvttss2usi",    { Gdq, EXxmm_md, EXxEVexS }, 0 },
1321     { VEX_W_TABLE (EVEX_W_0F78_P_2) },
1322     { "vcvttsd2usi",    { Gdq, EXxmm_mq, EXxEVexS }, 0 },
1323   },
1324   /* PREFIX_EVEX_0F79 */
1325   {
1326     { VEX_W_TABLE (EVEX_W_0F79_P_0) },
1327     { "vcvtss2usi",     { Gdq, EXxmm_md, EXxEVexR }, 0 },
1328     { VEX_W_TABLE (EVEX_W_0F79_P_2) },
1329     { "vcvtsd2usi",     { Gdq, EXxmm_mq, EXxEVexR }, 0 },
1330   },
1331   /* PREFIX_EVEX_0F7A */
1332   {
1333     { Bad_Opcode },
1334     { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
1335     { VEX_W_TABLE (EVEX_W_0F7A_P_2) },
1336     { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
1337   },
1338   /* PREFIX_EVEX_0F7B */
1339   {
1340     { Bad_Opcode },
1341     { VEX_W_TABLE (EVEX_W_0F7B_P_1) },
1342     { VEX_W_TABLE (EVEX_W_0F7B_P_2) },
1343     { VEX_W_TABLE (EVEX_W_0F7B_P_3) },
1344   },
1345   /* PREFIX_EVEX_0F7E */
1346   {
1347     { Bad_Opcode },
1348     { EVEX_LEN_TABLE (EVEX_LEN_0F7E_P_1) },
1349     { EVEX_LEN_TABLE (EVEX_LEN_0F7E_P_2) },
1350   },
1351   /* PREFIX_EVEX_0F7F */
1352   {
1353     { Bad_Opcode },
1354     { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
1355     { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
1356     { VEX_W_TABLE (EVEX_W_0F7F_P_3) },
1357   },
1358   /* PREFIX_EVEX_0FC2 */
1359   {
1360     { VEX_W_TABLE (EVEX_W_0FC2_P_0) },
1361     { VEX_W_TABLE (EVEX_W_0FC2_P_1) },
1362     { VEX_W_TABLE (EVEX_W_0FC2_P_2) },
1363     { VEX_W_TABLE (EVEX_W_0FC2_P_3) },
1364   },
1365   /* PREFIX_EVEX_0FC4 */
1366   {
1367     { Bad_Opcode },
1368     { Bad_Opcode },
1369     { "vpinsrw",        { XM, Vex128, Edw, Ib }, 0 },
1370   },
1371   /* PREFIX_EVEX_0FC5 */
1372   {
1373     { Bad_Opcode },
1374     { Bad_Opcode },
1375     { "vpextrw",        { Gdq, XS, Ib }, 0 },
1376   },
1377   /* PREFIX_EVEX_0FC6 */
1378   {
1379     { VEX_W_TABLE (EVEX_W_0FC6_P_0) },
1380     { Bad_Opcode },
1381     { VEX_W_TABLE (EVEX_W_0FC6_P_2) },
1382   },
1383   /* PREFIX_EVEX_0FD1 */
1384   {
1385     { Bad_Opcode },
1386     { Bad_Opcode },
1387     { "vpsrlw", { XM, Vex, EXxmm }, 0 },
1388   },
1389   /* PREFIX_EVEX_0FD2 */
1390   {
1391     { Bad_Opcode },
1392     { Bad_Opcode },
1393     { VEX_W_TABLE (EVEX_W_0FD2_P_2) },
1394   },
1395   /* PREFIX_EVEX_0FD3 */
1396   {
1397     { Bad_Opcode },
1398     { Bad_Opcode },
1399     { VEX_W_TABLE (EVEX_W_0FD3_P_2) },
1400   },
1401   /* PREFIX_EVEX_0FD4 */
1402   {
1403     { Bad_Opcode },
1404     { Bad_Opcode },
1405     { VEX_W_TABLE (EVEX_W_0FD4_P_2) },
1406   },
1407   /* PREFIX_EVEX_0FD5 */
1408   {
1409     { Bad_Opcode },
1410     { Bad_Opcode },
1411     { "vpmullw",        { XM, Vex, EXx }, 0 },
1412   },
1413   /* PREFIX_EVEX_0FD6 */
1414   {
1415     { Bad_Opcode },
1416     { Bad_Opcode },
1417     { EVEX_LEN_TABLE (EVEX_LEN_0FD6_P_2) },
1418   },
1419   /* PREFIX_EVEX_0FD8 */
1420   {
1421     { Bad_Opcode },
1422     { Bad_Opcode },
1423     { "vpsubusb",       { XM, Vex, EXx }, 0 },
1424   },
1425   /* PREFIX_EVEX_0FD9 */
1426   {
1427     { Bad_Opcode },
1428     { Bad_Opcode },
1429     { "vpsubusw",       { XM, Vex, EXx }, 0 },
1430   },
1431   /* PREFIX_EVEX_0FDA */
1432   {
1433     { Bad_Opcode },
1434     { Bad_Opcode },
1435     { "vpminub",        { XM, Vex, EXx }, 0 },
1436   },
1437   /* PREFIX_EVEX_0FDB */
1438   {
1439     { Bad_Opcode },
1440     { Bad_Opcode },
1441     { "vpand%LW",       { XM, Vex, EXx }, 0 },
1442   },
1443   /* PREFIX_EVEX_0FDC */
1444   {
1445     { Bad_Opcode },
1446     { Bad_Opcode },
1447     { "vpaddusb",       { XM, Vex, EXx }, 0 },
1448   },
1449   /* PREFIX_EVEX_0FDD */
1450   {
1451     { Bad_Opcode },
1452     { Bad_Opcode },
1453     { "vpaddusw",       { XM, Vex, EXx }, 0 },
1454   },
1455   /* PREFIX_EVEX_0FDE */
1456   {
1457     { Bad_Opcode },
1458     { Bad_Opcode },
1459     { "vpmaxub",        { XM, Vex, EXx }, 0 },
1460   },
1461   /* PREFIX_EVEX_0FDF */
1462   {
1463     { Bad_Opcode },
1464     { Bad_Opcode },
1465     { "vpandn%LW",      { XM, Vex, EXx }, 0 },
1466   },
1467   /* PREFIX_EVEX_0FE0 */
1468   {
1469     { Bad_Opcode },
1470     { Bad_Opcode },
1471     { "vpavgb", { XM, Vex, EXx }, 0 },
1472   },
1473   /* PREFIX_EVEX_0FE1 */
1474   {
1475     { Bad_Opcode },
1476     { Bad_Opcode },
1477     { "vpsraw", { XM, Vex, EXxmm }, 0 },
1478   },
1479   /* PREFIX_EVEX_0FE2 */
1480   {
1481     { Bad_Opcode },
1482     { Bad_Opcode },
1483     { "vpsra%LW",       { XM, Vex, EXxmm }, 0 },
1484   },
1485   /* PREFIX_EVEX_0FE3 */
1486   {
1487     { Bad_Opcode },
1488     { Bad_Opcode },
1489     { "vpavgw", { XM, Vex, EXx }, 0 },
1490   },
1491   /* PREFIX_EVEX_0FE4 */
1492   {
1493     { Bad_Opcode },
1494     { Bad_Opcode },
1495     { "vpmulhuw",       { XM, Vex, EXx }, 0 },
1496   },
1497   /* PREFIX_EVEX_0FE5 */
1498   {
1499     { Bad_Opcode },
1500     { Bad_Opcode },
1501     { "vpmulhw",        { XM, Vex, EXx }, 0 },
1502   },
1503   /* PREFIX_EVEX_0FE6 */
1504   {
1505     { Bad_Opcode },
1506     { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
1507     { VEX_W_TABLE (EVEX_W_0FE6_P_2) },
1508     { VEX_W_TABLE (EVEX_W_0FE6_P_3) },
1509   },
1510   /* PREFIX_EVEX_0FE7 */
1511   {
1512     { Bad_Opcode },
1513     { Bad_Opcode },
1514     { VEX_W_TABLE (EVEX_W_0FE7_P_2) },
1515   },
1516   /* PREFIX_EVEX_0FE8 */
1517   {
1518     { Bad_Opcode },
1519     { Bad_Opcode },
1520     { "vpsubsb",        { XM, Vex, EXx }, 0 },
1521   },
1522   /* PREFIX_EVEX_0FE9 */
1523   {
1524     { Bad_Opcode },
1525     { Bad_Opcode },
1526     { "vpsubsw",        { XM, Vex, EXx }, 0 },
1527   },
1528   /* PREFIX_EVEX_0FEA */
1529   {
1530     { Bad_Opcode },
1531     { Bad_Opcode },
1532     { "vpminsw",        { XM, Vex, EXx }, 0 },
1533   },
1534   /* PREFIX_EVEX_0FEB */
1535   {
1536     { Bad_Opcode },
1537     { Bad_Opcode },
1538     { "vpor%LW",        { XM, Vex, EXx }, 0 },
1539   },
1540   /* PREFIX_EVEX_0FEC */
1541   {
1542     { Bad_Opcode },
1543     { Bad_Opcode },
1544     { "vpaddsb",        { XM, Vex, EXx }, 0 },
1545   },
1546   /* PREFIX_EVEX_0FED */
1547   {
1548     { Bad_Opcode },
1549     { Bad_Opcode },
1550     { "vpaddsw",        { XM, Vex, EXx }, 0 },
1551   },
1552   /* PREFIX_EVEX_0FEE */
1553   {
1554     { Bad_Opcode },
1555     { Bad_Opcode },
1556     { "vpmaxsw",        { XM, Vex, EXx }, 0 },
1557   },
1558   /* PREFIX_EVEX_0FEF */
1559   {
1560     { Bad_Opcode },
1561     { Bad_Opcode },
1562     { "vpxor%LW",       { XM, Vex, EXx }, 0 },
1563   },
1564   /* PREFIX_EVEX_0FF1 */
1565   {
1566     { Bad_Opcode },
1567     { Bad_Opcode },
1568     { "vpsllw", { XM, Vex, EXxmm }, 0 },
1569   },
1570   /* PREFIX_EVEX_0FF2 */
1571   {
1572     { Bad_Opcode },
1573     { Bad_Opcode },
1574     { VEX_W_TABLE (EVEX_W_0FF2_P_2) },
1575   },
1576   /* PREFIX_EVEX_0FF3 */
1577   {
1578     { Bad_Opcode },
1579     { Bad_Opcode },
1580     { VEX_W_TABLE (EVEX_W_0FF3_P_2) },
1581   },
1582   /* PREFIX_EVEX_0FF4 */
1583   {
1584     { Bad_Opcode },
1585     { Bad_Opcode },
1586     { VEX_W_TABLE (EVEX_W_0FF4_P_2) },
1587   },
1588   /* PREFIX_EVEX_0FF5 */
1589   {
1590     { Bad_Opcode },
1591     { Bad_Opcode },
1592     { "vpmaddwd",       { XM, Vex, EXx }, 0 },
1593   },
1594   /* PREFIX_EVEX_0FF6 */
1595   {
1596     { Bad_Opcode },
1597     { Bad_Opcode },
1598     { "vpsadbw",        { XM, Vex, EXx }, 0 },
1599   },
1600   /* PREFIX_EVEX_0FF8 */
1601   {
1602     { Bad_Opcode },
1603     { Bad_Opcode },
1604     { "vpsubb", { XM, Vex, EXx }, 0 },
1605   },
1606   /* PREFIX_EVEX_0FF9 */
1607   {
1608     { Bad_Opcode },
1609     { Bad_Opcode },
1610     { "vpsubw", { XM, Vex, EXx }, 0 },
1611   },
1612   /* PREFIX_EVEX_0FFA */
1613   {
1614     { Bad_Opcode },
1615     { Bad_Opcode },
1616     { VEX_W_TABLE (EVEX_W_0FFA_P_2) },
1617   },
1618   /* PREFIX_EVEX_0FFB */
1619   {
1620     { Bad_Opcode },
1621     { Bad_Opcode },
1622     { VEX_W_TABLE (EVEX_W_0FFB_P_2) },
1623   },
1624   /* PREFIX_EVEX_0FFC */
1625   {
1626     { Bad_Opcode },
1627     { Bad_Opcode },
1628     { "vpaddb", { XM, Vex, EXx }, 0 },
1629   },
1630   /* PREFIX_EVEX_0FFD */
1631   {
1632     { Bad_Opcode },
1633     { Bad_Opcode },
1634     { "vpaddw", { XM, Vex, EXx }, 0 },
1635   },
1636   /* PREFIX_EVEX_0FFE */
1637   {
1638     { Bad_Opcode },
1639     { Bad_Opcode },
1640     { VEX_W_TABLE (EVEX_W_0FFE_P_2) },
1641   },
1642   /* PREFIX_EVEX_0F3800 */
1643   {
1644     { Bad_Opcode },
1645     { Bad_Opcode },
1646     { "vpshufb",        { XM, Vex, EXx }, 0 },
1647   },
1648   /* PREFIX_EVEX_0F3804 */
1649   {
1650     { Bad_Opcode },
1651     { Bad_Opcode },
1652     { "vpmaddubsw",     { XM, Vex, EXx }, 0 },
1653   },
1654   /* PREFIX_EVEX_0F380B */
1655   {
1656     { Bad_Opcode },
1657     { Bad_Opcode },
1658     { "vpmulhrsw",      { XM, Vex, EXx }, 0 },
1659   },
1660   /* PREFIX_EVEX_0F380C */
1661   {
1662     { Bad_Opcode },
1663     { Bad_Opcode },
1664     { VEX_W_TABLE (EVEX_W_0F380C_P_2) },
1665   },
1666   /* PREFIX_EVEX_0F380D */
1667   {
1668     { Bad_Opcode },
1669     { Bad_Opcode },
1670     { VEX_W_TABLE (EVEX_W_0F380D_P_2) },
1671   },
1672   /* PREFIX_EVEX_0F3810 */
1673   {
1674     { Bad_Opcode },
1675     { VEX_W_TABLE (EVEX_W_0F3810_P_1) },
1676     { VEX_W_TABLE (EVEX_W_0F3810_P_2) },
1677   },
1678   /* PREFIX_EVEX_0F3811 */
1679   {
1680     { Bad_Opcode },
1681     { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
1682     { VEX_W_TABLE (EVEX_W_0F3811_P_2) },
1683   },
1684   /* PREFIX_EVEX_0F3812 */
1685   {
1686     { Bad_Opcode },
1687     { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
1688     { VEX_W_TABLE (EVEX_W_0F3812_P_2) },
1689   },
1690   /* PREFIX_EVEX_0F3813 */
1691   {
1692     { Bad_Opcode },
1693     { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
1694     { VEX_W_TABLE (EVEX_W_0F3813_P_2) },
1695   },
1696   /* PREFIX_EVEX_0F3814 */
1697   {
1698     { Bad_Opcode },
1699     { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
1700     { "vprorv%LW",      { XM, Vex, EXx }, 0 },
1701   },
1702   /* PREFIX_EVEX_0F3815 */
1703   {
1704     { Bad_Opcode },
1705     { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
1706     { "vprolv%LW",      { XM, Vex, EXx }, 0 },
1707   },
1708   /* PREFIX_EVEX_0F3816 */
1709   {
1710     { Bad_Opcode },
1711     { Bad_Opcode },
1712     { "vpermp%XW",      { XM, Vex, EXx }, 0 },
1713   },
1714   /* PREFIX_EVEX_0F3818 */
1715   {
1716     { Bad_Opcode },
1717     { Bad_Opcode },
1718     { VEX_W_TABLE (EVEX_W_0F3818_P_2) },
1719   },
1720   /* PREFIX_EVEX_0F3819 */
1721   {
1722     { Bad_Opcode },
1723     { Bad_Opcode },
1724     { VEX_W_TABLE (EVEX_W_0F3819_P_2) },
1725   },
1726   /* PREFIX_EVEX_0F381A */
1727   {
1728     { Bad_Opcode },
1729     { Bad_Opcode },
1730     { VEX_W_TABLE (EVEX_W_0F381A_P_2) },
1731   },
1732   /* PREFIX_EVEX_0F381B */
1733   {
1734     { Bad_Opcode },
1735     { Bad_Opcode },
1736     { VEX_W_TABLE (EVEX_W_0F381B_P_2) },
1737   },
1738   /* PREFIX_EVEX_0F381C */
1739   {
1740     { Bad_Opcode },
1741     { Bad_Opcode },
1742     { "vpabsb", { XM, EXx }, 0 },
1743   },
1744   /* PREFIX_EVEX_0F381D */
1745   {
1746     { Bad_Opcode },
1747     { Bad_Opcode },
1748     { "vpabsw", { XM, EXx }, 0 },
1749   },
1750   /* PREFIX_EVEX_0F381E */
1751   {
1752     { Bad_Opcode },
1753     { Bad_Opcode },
1754     { VEX_W_TABLE (EVEX_W_0F381E_P_2) },
1755   },
1756   /* PREFIX_EVEX_0F381F */
1757   {
1758     { Bad_Opcode },
1759     { Bad_Opcode },
1760     { VEX_W_TABLE (EVEX_W_0F381F_P_2) },
1761   },
1762   /* PREFIX_EVEX_0F3820 */
1763   {
1764     { Bad_Opcode },
1765     { VEX_W_TABLE (EVEX_W_0F3820_P_1) },
1766     { "vpmovsxbw",      { XM, EXxmmq }, 0 },
1767   },
1768   /* PREFIX_EVEX_0F3821 */
1769   {
1770     { Bad_Opcode },
1771     { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
1772     { "vpmovsxbd",      { XM, EXxmmqd }, 0 },
1773   },
1774   /* PREFIX_EVEX_0F3822 */
1775   {
1776     { Bad_Opcode },
1777     { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
1778     { "vpmovsxbq",      { XM, EXxmmdw }, 0 },
1779   },
1780   /* PREFIX_EVEX_0F3823 */
1781   {
1782     { Bad_Opcode },
1783     { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
1784     { "vpmovsxwd",      { XM, EXxmmq }, 0 },
1785   },
1786   /* PREFIX_EVEX_0F3824 */
1787   {
1788     { Bad_Opcode },
1789     { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
1790     { "vpmovsxwq",      { XM, EXxmmqd }, 0 },
1791   },
1792   /* PREFIX_EVEX_0F3825 */
1793   {
1794     { Bad_Opcode },
1795     { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
1796     { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
1797   },
1798   /* PREFIX_EVEX_0F3826 */
1799   {
1800     { Bad_Opcode },
1801     { VEX_W_TABLE (EVEX_W_0F3826_P_1) },
1802     { VEX_W_TABLE (EVEX_W_0F3826_P_2) },
1803   },
1804   /* PREFIX_EVEX_0F3827 */
1805   {
1806     { Bad_Opcode },
1807     { "vptestnm%LW",    { XMask, Vex, EXx }, 0 },
1808     { "vptestm%LW",     { XMask, Vex, EXx }, 0 },
1809   },
1810   /* PREFIX_EVEX_0F3828 */
1811   {
1812     { Bad_Opcode },
1813     { VEX_W_TABLE (EVEX_W_0F3828_P_1) },
1814     { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
1815   },
1816   /* PREFIX_EVEX_0F3829 */
1817   {
1818     { Bad_Opcode },
1819     { VEX_W_TABLE (EVEX_W_0F3829_P_1) },
1820     { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
1821   },
1822   /* PREFIX_EVEX_0F382A */
1823   {
1824     { Bad_Opcode },
1825     { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
1826     { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
1827   },
1828   /* PREFIX_EVEX_0F382B */
1829   {
1830     { Bad_Opcode },
1831     { Bad_Opcode },
1832     { VEX_W_TABLE (EVEX_W_0F382B_P_2) },
1833   },
1834   /* PREFIX_EVEX_0F382C */
1835   {
1836     { Bad_Opcode },
1837     { Bad_Opcode },
1838     { "vscalefp%XW",    { XM, Vex, EXx, EXxEVexR }, 0 },
1839   },
1840   /* PREFIX_EVEX_0F382D */
1841   {
1842     { Bad_Opcode },
1843     { Bad_Opcode },
1844     { "vscalefs%XW",    { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
1845   },
1846   /* PREFIX_EVEX_0F3830 */
1847   {
1848     { Bad_Opcode },
1849     { VEX_W_TABLE (EVEX_W_0F3830_P_1) },
1850     { "vpmovzxbw",      { XM, EXxmmq }, 0 },
1851   },
1852   /* PREFIX_EVEX_0F3831 */
1853   {
1854     { Bad_Opcode },
1855     { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
1856     { "vpmovzxbd",      { XM, EXxmmqd }, 0 },
1857   },
1858   /* PREFIX_EVEX_0F3832 */
1859   {
1860     { Bad_Opcode },
1861     { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
1862     { "vpmovzxbq",      { XM, EXxmmdw }, 0 },
1863   },
1864   /* PREFIX_EVEX_0F3833 */
1865   {
1866     { Bad_Opcode },
1867     { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
1868     { "vpmovzxwd",      { XM, EXxmmq }, 0 },
1869   },
1870   /* PREFIX_EVEX_0F3834 */
1871   {
1872     { Bad_Opcode },
1873     { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
1874     { "vpmovzxwq",      { XM, EXxmmqd }, 0 },
1875   },
1876   /* PREFIX_EVEX_0F3835 */
1877   {
1878     { Bad_Opcode },
1879     { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
1880     { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
1881   },
1882   /* PREFIX_EVEX_0F3836 */
1883   {
1884     { Bad_Opcode },
1885     { Bad_Opcode },
1886     { "vperm%LW",       { XM, Vex, EXx }, 0 },
1887   },
1888   /* PREFIX_EVEX_0F3837 */
1889   {
1890     { Bad_Opcode },
1891     { Bad_Opcode },
1892     { VEX_W_TABLE (EVEX_W_0F3837_P_2) },
1893   },
1894   /* PREFIX_EVEX_0F3838 */
1895   {
1896     { Bad_Opcode },
1897     { VEX_W_TABLE (EVEX_W_0F3838_P_1) },
1898     { "vpminsb",        { XM, Vex, EXx }, 0 },
1899   },
1900   /* PREFIX_EVEX_0F3839 */
1901   {
1902     { Bad_Opcode },
1903     { VEX_W_TABLE (EVEX_W_0F3839_P_1) },
1904     { "vpmins%LW",      { XM, Vex, EXx }, 0 },
1905   },
1906   /* PREFIX_EVEX_0F383A */
1907   {
1908     { Bad_Opcode },
1909     { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
1910     { "vpminuw",        { XM, Vex, EXx }, 0 },
1911   },
1912   /* PREFIX_EVEX_0F383B */
1913   {
1914     { Bad_Opcode },
1915     { Bad_Opcode },
1916     { "vpminu%LW",      { XM, Vex, EXx }, 0 },
1917   },
1918   /* PREFIX_EVEX_0F383C */
1919   {
1920     { Bad_Opcode },
1921     { Bad_Opcode },
1922     { "vpmaxsb",        { XM, Vex, EXx }, 0 },
1923   },
1924   /* PREFIX_EVEX_0F383D */
1925   {
1926     { Bad_Opcode },
1927     { Bad_Opcode },
1928     { "vpmaxs%LW",      { XM, Vex, EXx }, 0 },
1929   },
1930   /* PREFIX_EVEX_0F383E */
1931   {
1932     { Bad_Opcode },
1933     { Bad_Opcode },
1934     { "vpmaxuw",        { XM, Vex, EXx }, 0 },
1935   },
1936   /* PREFIX_EVEX_0F383F */
1937   {
1938     { Bad_Opcode },
1939     { Bad_Opcode },
1940     { "vpmaxu%LW",      { XM, Vex, EXx }, 0 },
1941   },
1942   /* PREFIX_EVEX_0F3840 */
1943   {
1944     { Bad_Opcode },
1945     { Bad_Opcode },
1946     { VEX_W_TABLE (EVEX_W_0F3840_P_2) },
1947   },
1948   /* PREFIX_EVEX_0F3842 */
1949   {
1950     { Bad_Opcode },
1951     { Bad_Opcode },
1952     { "vgetexpp%XW",    { XM, EXx, EXxEVexS }, 0 },
1953   },
1954   /* PREFIX_EVEX_0F3843 */
1955   {
1956     { Bad_Opcode },
1957     { Bad_Opcode },
1958     { "vgetexps%XW",    { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
1959   },
1960   /* PREFIX_EVEX_0F3844 */
1961   {
1962     { Bad_Opcode },
1963     { Bad_Opcode },
1964     { "vplzcnt%LW",     { XM, EXx }, 0 },
1965   },
1966   /* PREFIX_EVEX_0F3845 */
1967   {
1968     { Bad_Opcode },
1969     { Bad_Opcode },
1970     { "vpsrlv%LW",      { XM, Vex, EXx }, 0 },
1971   },
1972   /* PREFIX_EVEX_0F3846 */
1973   {
1974     { Bad_Opcode },
1975     { Bad_Opcode },
1976     { "vpsrav%LW",      { XM, Vex, EXx }, 0 },
1977   },
1978   /* PREFIX_EVEX_0F3847 */
1979   {
1980     { Bad_Opcode },
1981     { Bad_Opcode },
1982     { "vpsllv%LW",      { XM, Vex, EXx }, 0 },
1983   },
1984   /* PREFIX_EVEX_0F384C */
1985   {
1986     { Bad_Opcode },
1987     { Bad_Opcode },
1988     { "vrcp14p%XW",     { XM, EXx }, 0 },
1989   },
1990   /* PREFIX_EVEX_0F384D */
1991   {
1992     { Bad_Opcode },
1993     { Bad_Opcode },
1994     { "vrcp14s%XW",     { XMScalar, VexScalar, EXxmm_mdq }, 0 },
1995   },
1996   /* PREFIX_EVEX_0F384E */
1997   {
1998     { Bad_Opcode },
1999     { Bad_Opcode },
2000     { "vrsqrt14p%XW",   { XM, EXx }, 0 },
2001   },
2002   /* PREFIX_EVEX_0F384F */
2003   {
2004     { Bad_Opcode },
2005     { Bad_Opcode },
2006     { "vrsqrt14s%XW",   { XMScalar, VexScalar, EXxmm_mdq }, 0 },
2007   },
2008   /* PREFIX_EVEX_0F3850 */
2009   {
2010     { Bad_Opcode },
2011     { Bad_Opcode },
2012     { "vpdpbusd",       { XM, Vex, EXx }, 0 },
2013   },
2014   /* PREFIX_EVEX_0F3851 */
2015   {
2016     { Bad_Opcode },
2017     { Bad_Opcode },
2018     { "vpdpbusds",      { XM, Vex, EXx }, 0 },
2019   },
2020   /* PREFIX_EVEX_0F3852 */
2021   {
2022     { Bad_Opcode },
2023     { VEX_W_TABLE (EVEX_W_0F3852_P_1) },
2024     { "vpdpwssd",       { XM, Vex, EXx }, 0 },
2025     { "vp4dpwssd",      { XM, Vex, EXxmm }, 0 },
2026   },
2027   /* PREFIX_EVEX_0F3853 */
2028   {
2029     { Bad_Opcode },
2030     { Bad_Opcode },
2031     { "vpdpwssds",      { XM, Vex, EXx }, 0 },
2032     { "vp4dpwssds",     { XM, Vex, EXxmm }, 0 },
2033   },
2034   /* PREFIX_EVEX_0F3854 */
2035   {
2036     { Bad_Opcode },
2037     { Bad_Opcode },
2038     { VEX_W_TABLE (EVEX_W_0F3854_P_2) },
2039   },
2040   /* PREFIX_EVEX_0F3855 */
2041   {
2042     { Bad_Opcode },
2043     { Bad_Opcode },
2044     { VEX_W_TABLE (EVEX_W_0F3855_P_2) },
2045   },
2046   /* PREFIX_EVEX_0F3858 */
2047   {
2048     { Bad_Opcode },
2049     { Bad_Opcode },
2050     { VEX_W_TABLE (EVEX_W_0F3858_P_2) },
2051   },
2052   /* PREFIX_EVEX_0F3859 */
2053   {
2054     { Bad_Opcode },
2055     { Bad_Opcode },
2056     { VEX_W_TABLE (EVEX_W_0F3859_P_2) },
2057   },
2058   /* PREFIX_EVEX_0F385A */
2059   {
2060     { Bad_Opcode },
2061     { Bad_Opcode },
2062     { VEX_W_TABLE (EVEX_W_0F385A_P_2) },
2063   },
2064   /* PREFIX_EVEX_0F385B */
2065   {
2066     { Bad_Opcode },
2067     { Bad_Opcode },
2068     { VEX_W_TABLE (EVEX_W_0F385B_P_2) },
2069   },
2070   /* PREFIX_EVEX_0F3862 */
2071   {
2072     { Bad_Opcode },
2073     { Bad_Opcode },
2074     { VEX_W_TABLE (EVEX_W_0F3862_P_2) },
2075   },
2076   /* PREFIX_EVEX_0F3863 */
2077   {
2078     { Bad_Opcode },
2079     { Bad_Opcode },
2080     { VEX_W_TABLE (EVEX_W_0F3863_P_2) },
2081   },
2082   /* PREFIX_EVEX_0F3864 */
2083   {
2084     { Bad_Opcode },
2085     { Bad_Opcode },
2086     { "vpblendm%LW",    { XM, Vex, EXx }, 0 },
2087   },
2088   /* PREFIX_EVEX_0F3865 */
2089   {
2090     { Bad_Opcode },
2091     { Bad_Opcode },
2092     { "vblendmp%XW",    { XM, Vex, EXx }, 0 },
2093   },
2094   /* PREFIX_EVEX_0F3866 */
2095   {
2096     { Bad_Opcode },
2097     { Bad_Opcode },
2098     { VEX_W_TABLE (EVEX_W_0F3866_P_2) },
2099   },
2100   /* PREFIX_EVEX_0F3870 */
2101   {
2102     { Bad_Opcode },
2103     { Bad_Opcode },
2104     { VEX_W_TABLE (EVEX_W_0F3870_P_2) },
2105   },
2106   /* PREFIX_EVEX_0F3871 */
2107   {
2108     { Bad_Opcode },
2109     { Bad_Opcode },
2110     { VEX_W_TABLE (EVEX_W_0F3871_P_2) },
2111   },
2112   /* PREFIX_EVEX_0F3872 */
2113   {
2114     { Bad_Opcode },
2115     { VEX_W_TABLE (EVEX_W_0F3872_P_1) },
2116     { VEX_W_TABLE (EVEX_W_0F3872_P_2) },
2117     { VEX_W_TABLE (EVEX_W_0F3872_P_3) },
2118   },
2119   /* PREFIX_EVEX_0F3873 */
2120   {
2121     { Bad_Opcode },
2122     { Bad_Opcode },
2123     { VEX_W_TABLE (EVEX_W_0F3873_P_2) },
2124   },
2125   /* PREFIX_EVEX_0F3875 */
2126   {
2127     { Bad_Opcode },
2128     { Bad_Opcode },
2129     { VEX_W_TABLE (EVEX_W_0F3875_P_2) },
2130   },
2131   /* PREFIX_EVEX_0F3876 */
2132   {
2133     { Bad_Opcode },
2134     { Bad_Opcode },
2135     { "vpermi2%LW",     { XM, Vex, EXx }, 0 },
2136   },
2137   /* PREFIX_EVEX_0F3877 */
2138   {
2139     { Bad_Opcode },
2140     { Bad_Opcode },
2141     { "vpermi2p%XW",    { XM, Vex, EXx }, 0 },
2142   },
2143   /* PREFIX_EVEX_0F3878 */
2144   {
2145     { Bad_Opcode },
2146     { Bad_Opcode },
2147     { VEX_W_TABLE (EVEX_W_0F3878_P_2) },
2148   },
2149   /* PREFIX_EVEX_0F3879 */
2150   {
2151     { Bad_Opcode },
2152     { Bad_Opcode },
2153     { VEX_W_TABLE (EVEX_W_0F3879_P_2) },
2154   },
2155   /* PREFIX_EVEX_0F387A */
2156   {
2157     { Bad_Opcode },
2158     { Bad_Opcode },
2159     { VEX_W_TABLE (EVEX_W_0F387A_P_2) },
2160   },
2161   /* PREFIX_EVEX_0F387B */
2162   {
2163     { Bad_Opcode },
2164     { Bad_Opcode },
2165     { VEX_W_TABLE (EVEX_W_0F387B_P_2) },
2166   },
2167   /* PREFIX_EVEX_0F387C */
2168   {
2169     { Bad_Opcode },
2170     { Bad_Opcode },
2171     { "vpbroadcastK",   { XM, Rdq }, 0 },
2172   },
2173   /* PREFIX_EVEX_0F387D */
2174   {
2175     { Bad_Opcode },
2176     { Bad_Opcode },
2177     { VEX_W_TABLE (EVEX_W_0F387D_P_2) },
2178   },
2179   /* PREFIX_EVEX_0F387E */
2180   {
2181     { Bad_Opcode },
2182     { Bad_Opcode },
2183     { "vpermt2%LW",     { XM, Vex, EXx }, 0 },
2184   },
2185   /* PREFIX_EVEX_0F387F */
2186   {
2187     { Bad_Opcode },
2188     { Bad_Opcode },
2189     { "vpermt2p%XW",    { XM, Vex, EXx }, 0 },
2190   },
2191   /* PREFIX_EVEX_0F3883 */
2192   {
2193     { Bad_Opcode },
2194     { Bad_Opcode },
2195     { VEX_W_TABLE (EVEX_W_0F3883_P_2) },
2196   },
2197   /* PREFIX_EVEX_0F3888 */
2198   {
2199     { Bad_Opcode },
2200     { Bad_Opcode },
2201     { "vexpandp%XW",    { XM, EXEvexXGscat }, 0 },
2202   },
2203   /* PREFIX_EVEX_0F3889 */
2204   {
2205     { Bad_Opcode },
2206     { Bad_Opcode },
2207     { "vpexpand%LW",    { XM, EXEvexXGscat }, 0 },
2208   },
2209   /* PREFIX_EVEX_0F388A */
2210   {
2211     { Bad_Opcode },
2212     { Bad_Opcode },
2213     { "vcompressp%XW",  { EXEvexXGscat, XM }, 0 },
2214   },
2215   /* PREFIX_EVEX_0F388B */
2216   {
2217     { Bad_Opcode },
2218     { Bad_Opcode },
2219     { "vpcompress%LW",  { EXEvexXGscat, XM }, 0 },
2220   },
2221   /* PREFIX_EVEX_0F388D */
2222   {
2223     { Bad_Opcode },
2224     { Bad_Opcode },
2225     { VEX_W_TABLE (EVEX_W_0F388D_P_2) },
2226   },
2227   /* PREFIX_EVEX_0F388F */
2228   {
2229     { Bad_Opcode },
2230     { Bad_Opcode },
2231     { "vpshufbitqmb",  { XMask, Vex, EXx }, 0 },
2232   },
2233   /* PREFIX_EVEX_0F3890 */
2234   {
2235     { Bad_Opcode },
2236     { Bad_Opcode },
2237     { "vpgatherd%LW",   { XM, MVexVSIBDWpX }, 0 },
2238   },
2239   /* PREFIX_EVEX_0F3891 */
2240   {
2241     { Bad_Opcode },
2242     { Bad_Opcode },
2243     { VEX_W_TABLE (EVEX_W_0F3891_P_2) },
2244   },
2245   /* PREFIX_EVEX_0F3892 */
2246   {
2247     { Bad_Opcode },
2248     { Bad_Opcode },
2249     { "vgatherdp%XW",   { XM, MVexVSIBDWpX}, 0 },
2250   },
2251   /* PREFIX_EVEX_0F3893 */
2252   {
2253     { Bad_Opcode },
2254     { Bad_Opcode },
2255     { VEX_W_TABLE (EVEX_W_0F3893_P_2) },
2256   },
2257   /* PREFIX_EVEX_0F3896 */
2258   {
2259     { Bad_Opcode },
2260     { Bad_Opcode },
2261     { "vfmaddsub132p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
2262   },
2263   /* PREFIX_EVEX_0F3897 */
2264   {
2265     { Bad_Opcode },
2266     { Bad_Opcode },
2267     { "vfmsubadd132p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
2268   },
2269   /* PREFIX_EVEX_0F3898 */
2270   {
2271     { Bad_Opcode },
2272     { Bad_Opcode },
2273     { "vfmadd132p%XW",  { XM, Vex, EXx, EXxEVexR }, 0 },
2274   },
2275   /* PREFIX_EVEX_0F3899 */
2276   {
2277     { Bad_Opcode },
2278     { Bad_Opcode },
2279     { "vfmadd132s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2280   },
2281   /* PREFIX_EVEX_0F389A */
2282   {
2283     { Bad_Opcode },
2284     { Bad_Opcode },
2285     { "vfmsub132p%XW",  { XM, Vex, EXx, EXxEVexR }, 0 },
2286     { "v4fmaddps",      { XM, Vex, Mxmm }, 0 },
2287   },
2288   /* PREFIX_EVEX_0F389B */
2289   {
2290     { Bad_Opcode },
2291     { Bad_Opcode },
2292     { "vfmsub132s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2293     { "v4fmaddss",      { XMScalar, VexScalar, Mxmm }, 0 },
2294   },
2295   /* PREFIX_EVEX_0F389C */
2296   {
2297     { Bad_Opcode },
2298     { Bad_Opcode },
2299     { "vfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2300   },
2301   /* PREFIX_EVEX_0F389D */
2302   {
2303     { Bad_Opcode },
2304     { Bad_Opcode },
2305     { "vfnmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2306   },
2307   /* PREFIX_EVEX_0F389E */
2308   {
2309     { Bad_Opcode },
2310     { Bad_Opcode },
2311     { "vfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2312   },
2313   /* PREFIX_EVEX_0F389F */
2314   {
2315     { Bad_Opcode },
2316     { Bad_Opcode },
2317     { "vfnmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2318   },
2319   /* PREFIX_EVEX_0F38A0 */
2320   {
2321     { Bad_Opcode },
2322     { Bad_Opcode },
2323     { "vpscatterd%LW",  { MVexVSIBDWpX, XM }, 0 },
2324   },
2325   /* PREFIX_EVEX_0F38A1 */
2326   {
2327     { Bad_Opcode },
2328     { Bad_Opcode },
2329     { VEX_W_TABLE (EVEX_W_0F38A1_P_2) },
2330   },
2331   /* PREFIX_EVEX_0F38A2 */
2332   {
2333     { Bad_Opcode },
2334     { Bad_Opcode },
2335     { "vscatterdp%XW",  { MVexVSIBDWpX, XM }, 0 },
2336   },
2337   /* PREFIX_EVEX_0F38A3 */
2338   {
2339     { Bad_Opcode },
2340     { Bad_Opcode },
2341     { VEX_W_TABLE (EVEX_W_0F38A3_P_2) },
2342   },
2343   /* PREFIX_EVEX_0F38A6 */
2344   {
2345     { Bad_Opcode },
2346     { Bad_Opcode },
2347     { "vfmaddsub213p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
2348   },
2349   /* PREFIX_EVEX_0F38A7 */
2350   {
2351     { Bad_Opcode },
2352     { Bad_Opcode },
2353     { "vfmsubadd213p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
2354   },
2355   /* PREFIX_EVEX_0F38A8 */
2356   {
2357     { Bad_Opcode },
2358     { Bad_Opcode },
2359     { "vfmadd213p%XW",  { XM, Vex, EXx, EXxEVexR }, 0 },
2360   },
2361   /* PREFIX_EVEX_0F38A9 */
2362   {
2363     { Bad_Opcode },
2364     { Bad_Opcode },
2365     { "vfmadd213s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2366   },
2367   /* PREFIX_EVEX_0F38AA */
2368   {
2369     { Bad_Opcode },
2370     { Bad_Opcode },
2371     { "vfmsub213p%XW",  { XM, Vex, EXx, EXxEVexR }, 0 },
2372     { "v4fnmaddps",     { XM, Vex, Mxmm }, 0 },
2373   },
2374   /* PREFIX_EVEX_0F38AB */
2375   {
2376     { Bad_Opcode },
2377     { Bad_Opcode },
2378     { "vfmsub213s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2379     { "v4fnmaddss",     { XMScalar, VexScalar, Mxmm }, 0 },
2380   },
2381   /* PREFIX_EVEX_0F38AC */
2382   {
2383     { Bad_Opcode },
2384     { Bad_Opcode },
2385     { "vfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2386   },
2387   /* PREFIX_EVEX_0F38AD */
2388   {
2389     { Bad_Opcode },
2390     { Bad_Opcode },
2391     { "vfnmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2392   },
2393   /* PREFIX_EVEX_0F38AE */
2394   {
2395     { Bad_Opcode },
2396     { Bad_Opcode },
2397     { "vfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2398   },
2399   /* PREFIX_EVEX_0F38AF */
2400   {
2401     { Bad_Opcode },
2402     { Bad_Opcode },
2403     { "vfnmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2404   },
2405   /* PREFIX_EVEX_0F38B4 */
2406   {
2407     { Bad_Opcode },
2408     { Bad_Opcode },
2409     { "vpmadd52luq",    { XM, Vex, EXx }, 0 },
2410   },
2411   /* PREFIX_EVEX_0F38B5 */
2412   {
2413     { Bad_Opcode },
2414     { Bad_Opcode },
2415     { "vpmadd52huq",    { XM, Vex, EXx }, 0 },
2416   },
2417   /* PREFIX_EVEX_0F38B6 */
2418   {
2419     { Bad_Opcode },
2420     { Bad_Opcode },
2421     { "vfmaddsub231p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
2422   },
2423   /* PREFIX_EVEX_0F38B7 */
2424   {
2425     { Bad_Opcode },
2426     { Bad_Opcode },
2427     { "vfmsubadd231p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
2428   },
2429   /* PREFIX_EVEX_0F38B8 */
2430   {
2431     { Bad_Opcode },
2432     { Bad_Opcode },
2433     { "vfmadd231p%XW",  { XM, Vex, EXx, EXxEVexR }, 0 },
2434   },
2435   /* PREFIX_EVEX_0F38B9 */
2436   {
2437     { Bad_Opcode },
2438     { Bad_Opcode },
2439     { "vfmadd231s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2440   },
2441   /* PREFIX_EVEX_0F38BA */
2442   {
2443     { Bad_Opcode },
2444     { Bad_Opcode },
2445     { "vfmsub231p%XW",  { XM, Vex, EXx, EXxEVexR }, 0 },
2446   },
2447   /* PREFIX_EVEX_0F38BB */
2448   {
2449     { Bad_Opcode },
2450     { Bad_Opcode },
2451     { "vfmsub231s%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2452   },
2453   /* PREFIX_EVEX_0F38BC */
2454   {
2455     { Bad_Opcode },
2456     { Bad_Opcode },
2457     { "vfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2458   },
2459   /* PREFIX_EVEX_0F38BD */
2460   {
2461     { Bad_Opcode },
2462     { Bad_Opcode },
2463     { "vfnmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2464   },
2465   /* PREFIX_EVEX_0F38BE */
2466   {
2467     { Bad_Opcode },
2468     { Bad_Opcode },
2469     { "vfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2470   },
2471   /* PREFIX_EVEX_0F38BF */
2472   {
2473     { Bad_Opcode },
2474     { Bad_Opcode },
2475     { "vfnmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2476   },
2477   /* PREFIX_EVEX_0F38C4 */
2478   {
2479     { Bad_Opcode },
2480     { Bad_Opcode },
2481     { "vpconflict%LW",  { XM, EXx }, 0 },
2482   },
2483   /* PREFIX_EVEX_0F38C6_REG_1 */
2484   {
2485     { Bad_Opcode },
2486     { Bad_Opcode },
2487     { "vgatherpf0dp%XW",  { MVexVSIBDWpX }, 0 },
2488   },
2489   /* PREFIX_EVEX_0F38C6_REG_2 */
2490   {
2491     { Bad_Opcode },
2492     { Bad_Opcode },
2493     { "vgatherpf1dp%XW",  { MVexVSIBDWpX }, 0 },
2494   },
2495   /* PREFIX_EVEX_0F38C6_REG_5 */
2496   {
2497     { Bad_Opcode },
2498     { Bad_Opcode },
2499     { "vscatterpf0dp%XW",  { MVexVSIBDWpX }, 0 },
2500   },
2501   /* PREFIX_EVEX_0F38C6_REG_6 */
2502   {
2503     { Bad_Opcode },
2504     { Bad_Opcode },
2505     { "vscatterpf1dp%XW",  { MVexVSIBDWpX }, 0 },
2506   },
2507   /* PREFIX_EVEX_0F38C7_REG_1 */
2508   {
2509     { Bad_Opcode },
2510     { Bad_Opcode },
2511     { VEX_W_TABLE (EVEX_W_0F38C7_R_1_P_2) },
2512   },
2513   /* PREFIX_EVEX_0F38C7_REG_2 */
2514   {
2515     { Bad_Opcode },
2516     { Bad_Opcode },
2517     { VEX_W_TABLE (EVEX_W_0F38C7_R_2_P_2) },
2518   },
2519   /* PREFIX_EVEX_0F38C7_REG_5 */
2520   {
2521     { Bad_Opcode },
2522     { Bad_Opcode },
2523     { VEX_W_TABLE (EVEX_W_0F38C7_R_5_P_2) },
2524   },
2525   /* PREFIX_EVEX_0F38C7_REG_6 */
2526   {
2527     { Bad_Opcode },
2528     { Bad_Opcode },
2529     { VEX_W_TABLE (EVEX_W_0F38C7_R_6_P_2) },
2530   },
2531   /* PREFIX_EVEX_0F38C8 */
2532   {
2533     { Bad_Opcode },
2534     { Bad_Opcode },
2535     { "vexp2p%XW",        { XM, EXx, EXxEVexS }, 0 },
2536   },
2537   /* PREFIX_EVEX_0F38CA */
2538   {
2539     { Bad_Opcode },
2540     { Bad_Opcode },
2541     { "vrcp28p%XW",       { XM, EXx, EXxEVexS }, 0 },
2542   },
2543   /* PREFIX_EVEX_0F38CB */
2544   {
2545     { Bad_Opcode },
2546     { Bad_Opcode },
2547     { "vrcp28s%XW",       { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
2548   },
2549   /* PREFIX_EVEX_0F38CC */
2550   {
2551     { Bad_Opcode },
2552     { Bad_Opcode },
2553     { "vrsqrt28p%XW",     { XM, EXx, EXxEVexS }, 0 },
2554   },
2555   /* PREFIX_EVEX_0F38CD */
2556   {
2557     { Bad_Opcode },
2558     { Bad_Opcode },
2559     { "vrsqrt28s%XW",     { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
2560   },
2561   /* PREFIX_EVEX_0F38CF */
2562   {
2563     { Bad_Opcode },
2564     { Bad_Opcode },
2565     { "vgf2p8mulb",     { XM, Vex, EXx }, 0 }, 
2566   },
2567   /* PREFIX_EVEX_0F38DC */
2568   {
2569     { Bad_Opcode },
2570     { Bad_Opcode },
2571     { "vaesenc",       { XM, Vex, EXx }, 0 },
2572   },
2573   /* PREFIX_EVEX_0F38DD */
2574   {
2575     { Bad_Opcode },
2576     { Bad_Opcode },
2577     { "vaesenclast",   { XM, Vex, EXx }, 0 },
2578   },
2579   /* PREFIX_EVEX_0F38DE */
2580   {
2581     { Bad_Opcode },
2582     { Bad_Opcode },
2583     { "vaesdec",       { XM, Vex, EXx }, 0 },
2584   },
2585   /* PREFIX_EVEX_0F38DF */
2586   {
2587     { Bad_Opcode },
2588     { Bad_Opcode },
2589     { "vaesdeclast",   { XM, Vex, EXx }, 0 },
2590   },
2591   /* PREFIX_EVEX_0F3A00 */
2592   {
2593     { Bad_Opcode },
2594     { Bad_Opcode },
2595     { VEX_W_TABLE (EVEX_W_0F3A00_P_2) },
2596   },
2597   /* PREFIX_EVEX_0F3A01 */
2598   {
2599     { Bad_Opcode },
2600     { Bad_Opcode },
2601     { VEX_W_TABLE (EVEX_W_0F3A01_P_2) },
2602   },
2603   /* PREFIX_EVEX_0F3A03 */
2604   {
2605     { Bad_Opcode },
2606     { Bad_Opcode },
2607     { "valign%LW",      { XM, Vex, EXx, Ib }, 0 },
2608   },
2609   /* PREFIX_EVEX_0F3A04 */
2610   {
2611     { Bad_Opcode },
2612     { Bad_Opcode },
2613     { VEX_W_TABLE (EVEX_W_0F3A04_P_2) },
2614   },
2615   /* PREFIX_EVEX_0F3A05 */
2616   {
2617     { Bad_Opcode },
2618     { Bad_Opcode },
2619     { VEX_W_TABLE (EVEX_W_0F3A05_P_2) },
2620   },
2621   /* PREFIX_EVEX_0F3A08 */
2622   {
2623     { Bad_Opcode },
2624     { Bad_Opcode },
2625     { VEX_W_TABLE (EVEX_W_0F3A08_P_2) },
2626   },
2627   /* PREFIX_EVEX_0F3A09 */
2628   {
2629     { Bad_Opcode },
2630     { Bad_Opcode },
2631     { VEX_W_TABLE (EVEX_W_0F3A09_P_2) },
2632   },
2633   /* PREFIX_EVEX_0F3A0A */
2634   {
2635     { Bad_Opcode },
2636     { Bad_Opcode },
2637     { VEX_W_TABLE (EVEX_W_0F3A0A_P_2) },
2638   },
2639   /* PREFIX_EVEX_0F3A0B */
2640   {
2641     { Bad_Opcode },
2642     { Bad_Opcode },
2643     { VEX_W_TABLE (EVEX_W_0F3A0B_P_2) },
2644   },
2645   /* PREFIX_EVEX_0F3A0F */
2646   {
2647     { Bad_Opcode },
2648     { Bad_Opcode },
2649     { "vpalignr",       { XM, Vex, EXx, Ib }, 0 },
2650   },
2651   /* PREFIX_EVEX_0F3A14 */
2652   {
2653     { Bad_Opcode },
2654     { Bad_Opcode },
2655     { "vpextrb",        { Edqb, XM, Ib }, 0 },
2656   },
2657   /* PREFIX_EVEX_0F3A15 */
2658   {
2659     { Bad_Opcode },
2660     { Bad_Opcode },
2661     { "vpextrw",        { Edqw, XM, Ib }, 0 },
2662   },
2663   /* PREFIX_EVEX_0F3A16 */
2664   {
2665     { Bad_Opcode },
2666     { Bad_Opcode },
2667     { "vpextrK",        { Edq, XM, Ib }, 0 },
2668   },
2669   /* PREFIX_EVEX_0F3A17 */
2670   {
2671     { Bad_Opcode },
2672     { Bad_Opcode },
2673     { "vextractps",     { Edqd, XMM, Ib }, 0 },
2674   },
2675   /* PREFIX_EVEX_0F3A18 */
2676   {
2677     { Bad_Opcode },
2678     { Bad_Opcode },
2679     { VEX_W_TABLE (EVEX_W_0F3A18_P_2) },
2680   },
2681   /* PREFIX_EVEX_0F3A19 */
2682   {
2683     { Bad_Opcode },
2684     { Bad_Opcode },
2685     { VEX_W_TABLE (EVEX_W_0F3A19_P_2) },
2686   },
2687   /* PREFIX_EVEX_0F3A1A */
2688   {
2689     { Bad_Opcode },
2690     { Bad_Opcode },
2691     { VEX_W_TABLE (EVEX_W_0F3A1A_P_2) },
2692   },
2693   /* PREFIX_EVEX_0F3A1B */
2694   {
2695     { Bad_Opcode },
2696     { Bad_Opcode },
2697     { VEX_W_TABLE (EVEX_W_0F3A1B_P_2) },
2698   },
2699   /* PREFIX_EVEX_0F3A1D */
2700   {
2701     { Bad_Opcode },
2702     { Bad_Opcode },
2703     { VEX_W_TABLE (EVEX_W_0F3A1D_P_2) },
2704   },
2705   /* PREFIX_EVEX_0F3A1E */
2706   {
2707     { Bad_Opcode },
2708     { Bad_Opcode },
2709     { "vpcmpu%LW",      { XMask, Vex, EXx, VPCMP }, 0 },
2710   },
2711   /* PREFIX_EVEX_0F3A1F */
2712   {
2713     { Bad_Opcode },
2714     { Bad_Opcode },
2715     { "vpcmp%LW",       { XMask, Vex, EXx, VPCMP }, 0 },
2716   },
2717   /* PREFIX_EVEX_0F3A20 */
2718   {
2719     { Bad_Opcode },
2720     { Bad_Opcode },
2721     { "vpinsrb",        { XM, Vex128, Edb, Ib }, 0 },
2722   },
2723   /* PREFIX_EVEX_0F3A21 */
2724   {
2725     { Bad_Opcode },
2726     { Bad_Opcode },
2727     { VEX_W_TABLE (EVEX_W_0F3A21_P_2) },
2728   },
2729   /* PREFIX_EVEX_0F3A22 */
2730   {
2731     { Bad_Opcode },
2732     { Bad_Opcode },
2733     { "vpinsrK",        { XM, Vex128, Edq, Ib }, 0 },
2734   },
2735   /* PREFIX_EVEX_0F3A23 */
2736   {
2737     { Bad_Opcode },
2738     { Bad_Opcode },
2739     { VEX_W_TABLE (EVEX_W_0F3A23_P_2) },
2740   },
2741   /* PREFIX_EVEX_0F3A25 */
2742   {
2743     { Bad_Opcode },
2744     { Bad_Opcode },
2745     { "vpternlog%LW",   { XM, Vex, EXx, Ib }, 0 },
2746   },
2747   /* PREFIX_EVEX_0F3A26 */
2748   {
2749     { Bad_Opcode },
2750     { Bad_Opcode },
2751     { "vgetmantp%XW",   { XM, EXx, EXxEVexS, Ib }, 0 },
2752   },
2753   /* PREFIX_EVEX_0F3A27 */
2754   {
2755     { Bad_Opcode },
2756     { Bad_Opcode },
2757     { "vgetmants%XW",   { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 },
2758   },
2759   /* PREFIX_EVEX_0F3A38 */
2760   {
2761     { Bad_Opcode },
2762     { Bad_Opcode },
2763     { VEX_W_TABLE (EVEX_W_0F3A38_P_2) },
2764   },
2765   /* PREFIX_EVEX_0F3A39 */
2766   {
2767     { Bad_Opcode },
2768     { Bad_Opcode },
2769     { VEX_W_TABLE (EVEX_W_0F3A39_P_2) },
2770   },
2771   /* PREFIX_EVEX_0F3A3A */
2772   {
2773     { Bad_Opcode },
2774     { Bad_Opcode },
2775     { VEX_W_TABLE (EVEX_W_0F3A3A_P_2) },
2776   },
2777   /* PREFIX_EVEX_0F3A3B */
2778   {
2779     { Bad_Opcode },
2780     { Bad_Opcode },
2781     { VEX_W_TABLE (EVEX_W_0F3A3B_P_2) },
2782   },
2783   /* PREFIX_EVEX_0F3A3E */
2784   {
2785     { Bad_Opcode },
2786     { Bad_Opcode },
2787     { VEX_W_TABLE (EVEX_W_0F3A3E_P_2) },
2788   },
2789   /* PREFIX_EVEX_0F3A3F */
2790   {
2791     { Bad_Opcode },
2792     { Bad_Opcode },
2793     { VEX_W_TABLE (EVEX_W_0F3A3F_P_2) },
2794   },
2795   /* PREFIX_EVEX_0F3A42 */
2796   {
2797     { Bad_Opcode },
2798     { Bad_Opcode },
2799     { VEX_W_TABLE (EVEX_W_0F3A42_P_2) },
2800   },
2801   /* PREFIX_EVEX_0F3A43 */
2802   {
2803     { Bad_Opcode },
2804     { Bad_Opcode },
2805     { VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
2806   },
2807   /* PREFIX_EVEX_0F3A44 */
2808   {
2809     { Bad_Opcode },
2810     { Bad_Opcode },
2811     { "vpclmulqdq",     { XM, Vex, EXx, Ib }, 0 },
2812   },
2813   /* PREFIX_EVEX_0F3A50 */
2814   {
2815     { Bad_Opcode },
2816     { Bad_Opcode },
2817     { VEX_W_TABLE (EVEX_W_0F3A50_P_2) },
2818   },
2819   /* PREFIX_EVEX_0F3A51 */
2820   {
2821     { Bad_Opcode },
2822     { Bad_Opcode },
2823     { VEX_W_TABLE (EVEX_W_0F3A51_P_2) },
2824   },
2825   /* PREFIX_EVEX_0F3A54 */
2826   {
2827     { Bad_Opcode },
2828     { Bad_Opcode },
2829     { "vfixupimmp%XW",  { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
2830   },
2831   /* PREFIX_EVEX_0F3A55 */
2832   {
2833     { Bad_Opcode },
2834     { Bad_Opcode },
2835     { "vfixupimms%XW",  { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 },
2836   },
2837   /* PREFIX_EVEX_0F3A56 */
2838   {
2839     { Bad_Opcode },
2840     { Bad_Opcode },
2841     { VEX_W_TABLE (EVEX_W_0F3A56_P_2) },
2842   },
2843   /* PREFIX_EVEX_0F3A57 */
2844   {
2845     { Bad_Opcode },
2846     { Bad_Opcode },
2847     { VEX_W_TABLE (EVEX_W_0F3A57_P_2) },
2848   },
2849   /* PREFIX_EVEX_0F3A66 */
2850   {
2851     { Bad_Opcode },
2852     { Bad_Opcode },
2853     { VEX_W_TABLE (EVEX_W_0F3A66_P_2) },
2854   },
2855   /* PREFIX_EVEX_0F3A67 */
2856   {
2857     { Bad_Opcode },
2858     { Bad_Opcode },
2859     { VEX_W_TABLE (EVEX_W_0F3A67_P_2) },
2860   },
2861   /* PREFIX_EVEX_0F3A70 */
2862   {
2863     { Bad_Opcode },
2864     { Bad_Opcode },
2865     { VEX_W_TABLE (EVEX_W_0F3A70_P_2) },
2866   },
2867   /* PREFIX_EVEX_0F3A71 */
2868   {
2869     { Bad_Opcode },
2870     { Bad_Opcode },
2871     { VEX_W_TABLE (EVEX_W_0F3A71_P_2) },
2872   },
2873   /* PREFIX_EVEX_0F3A72 */
2874   {
2875     { Bad_Opcode },
2876     { Bad_Opcode },
2877     { VEX_W_TABLE (EVEX_W_0F3A72_P_2) },
2878   },
2879   /* PREFIX_EVEX_0F3A73 */
2880   {
2881     { Bad_Opcode },
2882     { Bad_Opcode },
2883     { VEX_W_TABLE (EVEX_W_0F3A73_P_2) },
2884   },
2885   /* PREFIX_EVEX_0F3ACE */
2886   {
2887     { Bad_Opcode },
2888     { Bad_Opcode },
2889     { VEX_W_TABLE (EVEX_W_0F3ACE_P_2) },
2890   },
2891   /* PREFIX_EVEX_0F3ACF */
2892   {
2893     { Bad_Opcode },
2894     { Bad_Opcode },
2895     { VEX_W_TABLE (EVEX_W_0F3ACF_P_2) },
2896   },
2897 #endif /* NEED_PREFIX_TABLE */
2898
2899 #ifdef NEED_VEX_W_TABLE
2900   /* EVEX_W_0F10_P_0 */
2901   {
2902     { "vmovups",        { XM, EXEvexXNoBcst }, 0 },
2903   },
2904   /* EVEX_W_0F10_P_1_M_0 */
2905   {
2906     { "vmovss", { XMScalar, EXdScalar }, 0 },
2907   },
2908   /* EVEX_W_0F10_P_1_M_1 */
2909   {
2910     { "vmovss", { XMScalar, VexScalar, EXxmm_md }, 0 },
2911   },
2912   /* EVEX_W_0F10_P_2 */
2913   {
2914     { Bad_Opcode },
2915     { "vmovupd",        { XM, EXEvexXNoBcst }, 0 },
2916   },
2917   /* EVEX_W_0F10_P_3_M_0 */
2918   {
2919     { Bad_Opcode },
2920     { "vmovsd", { XMScalar, EXqScalar }, 0 },
2921   },
2922   /* EVEX_W_0F10_P_3_M_1 */
2923   {
2924     { Bad_Opcode },
2925     { "vmovsd", { XMScalar, VexScalar, EXxmm_mq }, 0 },
2926   },
2927   /* EVEX_W_0F11_P_0 */
2928   {
2929     { "vmovups",        { EXxS, XM }, 0 },
2930   },
2931   /* EVEX_W_0F11_P_1_M_0 */
2932   {
2933     { "vmovss", { EXdScalarS, XMScalar }, 0 },
2934   },
2935   /* EVEX_W_0F11_P_1_M_1 */
2936   {
2937     { "vmovss", { EXxS, Vex, XMScalar }, 0 },
2938   },
2939   /* EVEX_W_0F11_P_2 */
2940   {
2941     { Bad_Opcode },
2942     { "vmovupd",        { EXxS, XM }, 0 },
2943   },
2944   /* EVEX_W_0F11_P_3_M_0 */
2945   {
2946     { Bad_Opcode },
2947     { "vmovsd", { EXqScalarS, XMScalar }, 0 },
2948   },
2949   /* EVEX_W_0F11_P_3_M_1 */
2950   {
2951     { Bad_Opcode },
2952     { "vmovsd", { EXxS, Vex, XMScalar }, 0 },
2953   },
2954   /* EVEX_W_0F12_P_0_M_0 */
2955   {
2956     { "vmovlps",        { XMM, Vex, EXxmm_mq }, 0 },
2957   },
2958   /* EVEX_W_0F12_P_0_M_1 */
2959   {
2960     { "vmovhlps",       { XMM, Vex, EXxmm_mq }, 0 },
2961   },
2962   /* EVEX_W_0F12_P_1 */
2963   {
2964     { "vmovsldup",      { XM, EXEvexXNoBcst }, 0 },
2965   },
2966   /* EVEX_W_0F12_P_2 */
2967   {
2968     { Bad_Opcode },
2969     { "vmovlpd",        { XMM, Vex, EXxmm_mq }, 0 },
2970   },
2971   /* EVEX_W_0F12_P_3 */
2972   {
2973     { Bad_Opcode },
2974     { "vmovddup",       { XM, EXymmq }, 0 },
2975   },
2976   /* EVEX_W_0F13_P_0 */
2977   {
2978     { "vmovlps",        { EXxmm_mq, XMM }, 0 },
2979   },
2980   /* EVEX_W_0F13_P_2 */
2981   {
2982     { Bad_Opcode },
2983     { "vmovlpd",        { EXxmm_mq, XMM }, 0 },
2984   },
2985   /* EVEX_W_0F14_P_0 */
2986   {
2987     { "vunpcklps",      { XM, Vex, EXx }, 0 },
2988   },
2989   /* EVEX_W_0F14_P_2 */
2990   {
2991     { Bad_Opcode },
2992     { "vunpcklpd",      { XM, Vex, EXx }, 0 },
2993   },
2994   /* EVEX_W_0F15_P_0 */
2995   {
2996     { "vunpckhps",      { XM, Vex, EXx }, 0 },
2997   },
2998   /* EVEX_W_0F15_P_2 */
2999   {
3000     { Bad_Opcode },
3001     { "vunpckhpd",      { XM, Vex, EXx }, 0 },
3002   },
3003   /* EVEX_W_0F16_P_0_M_0 */
3004   {
3005     { "vmovhps",        { XMM, Vex, EXxmm_mq }, 0 },
3006   },
3007   /* EVEX_W_0F16_P_0_M_1 */
3008   {
3009     { "vmovlhps",       { XMM, Vex, EXx }, 0 },
3010   },
3011   /* EVEX_W_0F16_P_1 */
3012   {
3013     { "vmovshdup",      { XM, EXx }, 0 },
3014   },
3015   /* EVEX_W_0F16_P_2 */
3016   {
3017     { Bad_Opcode },
3018     { "vmovhpd",        { XMM, Vex, EXxmm_mq }, 0 },
3019   },
3020   /* EVEX_W_0F17_P_0 */
3021   {
3022     { "vmovhps",        { EXxmm_mq, XMM }, 0 },
3023   },
3024   /* EVEX_W_0F17_P_2 */
3025   {
3026     { Bad_Opcode },
3027     { "vmovhpd",        { EXxmm_mq, XMM }, 0 },
3028   },
3029   /* EVEX_W_0F28_P_0 */
3030   {
3031     { "vmovaps",        { XM, EXx }, 0 },
3032   },
3033   /* EVEX_W_0F28_P_2 */
3034   {
3035     { Bad_Opcode },
3036     { "vmovapd",        { XM, EXx }, 0 },
3037   },
3038   /* EVEX_W_0F29_P_0 */
3039   {
3040     { "vmovaps",        { EXxS, XM }, 0 },
3041   },
3042   /* EVEX_W_0F29_P_2 */
3043   {
3044     { Bad_Opcode },
3045     { "vmovapd",        { EXxS, XM }, 0 },
3046   },
3047   /* EVEX_W_0F2A_P_1 */
3048   {
3049     { "vcvtsi2ss%LQ",   { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
3050     { "vcvtsi2ss%LQ",   { XMScalar, VexScalar, EXxEVexR, Edqa }, 0 },
3051   },
3052   /* EVEX_W_0F2A_P_3 */
3053   {
3054     { "vcvtsi2sd%LQ",   { XMScalar, VexScalar, Ed }, 0 },
3055     { "vcvtsi2sd%LQ",   { XMScalar, VexScalar, EXxEVexR64, Edqa }, 0 },
3056   },
3057   /* EVEX_W_0F2B_P_0 */
3058   {
3059     { "vmovntps",       { EXx, XM }, 0 },
3060   },
3061   /* EVEX_W_0F2B_P_2 */
3062   {
3063     { Bad_Opcode },
3064     { "vmovntpd",       { EXx, XM }, 0 },
3065   },
3066   /* EVEX_W_0F2E_P_0 */
3067   {
3068     { "vucomiss",       { XMScalar, EXxmm_md, EXxEVexS }, 0 },
3069   },
3070   /* EVEX_W_0F2E_P_2 */
3071   {
3072     { Bad_Opcode },
3073     { "vucomisd",       { XMScalar, EXxmm_mq, EXxEVexS }, 0 },
3074   },
3075   /* EVEX_W_0F2F_P_0 */
3076   {
3077     { "vcomiss",        { XMScalar, EXxmm_md, EXxEVexS }, 0 },
3078   },
3079   /* EVEX_W_0F2F_P_2 */
3080   {
3081     { Bad_Opcode },
3082     { "vcomisd",        { XMScalar, EXxmm_mq, EXxEVexS }, 0 },
3083   },
3084   /* EVEX_W_0F51_P_0 */
3085   {
3086     { "vsqrtps",        { XM, EXx, EXxEVexR }, 0 },
3087   },
3088   /* EVEX_W_0F51_P_1 */
3089   {
3090     { "vsqrtss",        { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3091   },
3092   /* EVEX_W_0F51_P_2 */
3093   {
3094     { Bad_Opcode },
3095     { "vsqrtpd",        { XM, EXx, EXxEVexR }, 0 },
3096   },
3097   /* EVEX_W_0F51_P_3 */
3098   {
3099     { Bad_Opcode },
3100     { "vsqrtsd",        { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3101   },
3102   /* EVEX_W_0F54_P_0 */
3103   {
3104     { "vandps", { XM, Vex, EXx }, 0 },
3105   },
3106   /* EVEX_W_0F54_P_2 */
3107   {
3108     { Bad_Opcode },
3109     { "vandpd", { XM, Vex, EXx }, 0 },
3110   },
3111   /* EVEX_W_0F55_P_0 */
3112   {
3113     { "vandnps",        { XM, Vex, EXx }, 0 },
3114   },
3115   /* EVEX_W_0F55_P_2 */
3116   {
3117     { Bad_Opcode },
3118     { "vandnpd",        { XM, Vex, EXx }, 0 },
3119   },
3120   /* EVEX_W_0F56_P_0 */
3121   {
3122     { "vorps",  { XM, Vex, EXx }, 0 },
3123   },
3124   /* EVEX_W_0F56_P_2 */
3125   {
3126     { Bad_Opcode },
3127     { "vorpd",  { XM, Vex, EXx }, 0 },
3128   },
3129   /* EVEX_W_0F57_P_0 */
3130   {
3131     { "vxorps", { XM, Vex, EXx }, 0 },
3132   },
3133   /* EVEX_W_0F57_P_2 */
3134   {
3135     { Bad_Opcode },
3136     { "vxorpd", { XM, Vex, EXx }, 0 },
3137   },
3138   /* EVEX_W_0F58_P_0 */
3139   {
3140     { "vaddps", { XM, Vex, EXx, EXxEVexR }, 0 },
3141   },
3142   /* EVEX_W_0F58_P_1 */
3143   {
3144     { "vaddss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3145   },
3146   /* EVEX_W_0F58_P_2 */
3147   {
3148     { Bad_Opcode },
3149     { "vaddpd", { XM, Vex, EXx, EXxEVexR }, 0 },
3150   },
3151   /* EVEX_W_0F58_P_3 */
3152   {
3153     { Bad_Opcode },
3154     { "vaddsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3155   },
3156   /* EVEX_W_0F59_P_0 */
3157   {
3158     { "vmulps", { XM, Vex, EXx, EXxEVexR }, 0 },
3159   },
3160   /* EVEX_W_0F59_P_1 */
3161   {
3162     { "vmulss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3163   },
3164   /* EVEX_W_0F59_P_2 */
3165   {
3166     { Bad_Opcode },
3167     { "vmulpd", { XM, Vex, EXx, EXxEVexR }, 0 },
3168   },
3169   /* EVEX_W_0F59_P_3 */
3170   {
3171     { Bad_Opcode },
3172     { "vmulsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3173   },
3174   /* EVEX_W_0F5A_P_0 */
3175   {
3176     { "vcvtps2pd",   { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
3177   },
3178   /* EVEX_W_0F5A_P_1 */
3179   {
3180     { "vcvtss2sd",      { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
3181   },
3182   /* EVEX_W_0F5A_P_2 */
3183   {
3184     { Bad_Opcode },
3185     { "vcvtpd2ps%XY",   { XMxmmq, EXx, EXxEVexR }, 0 },
3186   },
3187   /* EVEX_W_0F5A_P_3 */
3188   {
3189     { Bad_Opcode },
3190     { "vcvtsd2ss",      { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3191   },
3192   /* EVEX_W_0F5B_P_0 */
3193   {
3194     { "vcvtdq2ps",      { XM, EXx, EXxEVexR }, 0 },
3195     { "vcvtqq2ps%XY",   { XMxmmq, EXx, EXxEVexR }, 0 },
3196   },
3197   /* EVEX_W_0F5B_P_1 */
3198   {
3199     { "vcvttps2dq",     { XM, EXx, EXxEVexS }, 0 },
3200   },
3201   /* EVEX_W_0F5B_P_2 */
3202   {
3203     { "vcvtps2dq",      { XM, EXx, EXxEVexR }, 0 },
3204   },
3205   /* EVEX_W_0F5C_P_0 */
3206   {
3207     { "vsubps", { XM, Vex, EXx, EXxEVexR }, 0 },
3208   },
3209   /* EVEX_W_0F5C_P_1 */
3210   {
3211     { "vsubss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3212   },
3213   /* EVEX_W_0F5C_P_2 */
3214   {
3215     { Bad_Opcode },
3216     { "vsubpd", { XM, Vex, EXx, EXxEVexR }, 0 },
3217   },
3218   /* EVEX_W_0F5C_P_3 */
3219   {
3220     { Bad_Opcode },
3221     { "vsubsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3222   },
3223   /* EVEX_W_0F5D_P_0 */
3224   {
3225     { "vminps", { XM, Vex, EXx, EXxEVexS }, 0 },
3226   },
3227   /* EVEX_W_0F5D_P_1 */
3228   {
3229     { "vminss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
3230   },
3231   /* EVEX_W_0F5D_P_2 */
3232   {
3233     { Bad_Opcode },
3234     { "vminpd", { XM, Vex, EXx, EXxEVexS }, 0 },
3235   },
3236   /* EVEX_W_0F5D_P_3 */
3237   {
3238     { Bad_Opcode },
3239     { "vminsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 },
3240   },
3241   /* EVEX_W_0F5E_P_0 */
3242   {
3243     { "vdivps", { XM, Vex, EXx, EXxEVexR }, 0 },
3244   },
3245   /* EVEX_W_0F5E_P_1 */
3246   {
3247     { "vdivss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3248   },
3249   /* EVEX_W_0F5E_P_2 */
3250   {
3251     { Bad_Opcode },
3252     { "vdivpd", { XM, Vex, EXx, EXxEVexR }, 0 },
3253   },
3254   /* EVEX_W_0F5E_P_3 */
3255   {
3256     { Bad_Opcode },
3257     { "vdivsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3258   },
3259   /* EVEX_W_0F5F_P_0 */
3260   {
3261     { "vmaxps", { XM, Vex, EXx, EXxEVexS }, 0 },
3262   },
3263   /* EVEX_W_0F5F_P_1 */
3264   {
3265     { "vmaxss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
3266   },
3267   /* EVEX_W_0F5F_P_2 */
3268   {
3269     { Bad_Opcode },
3270     { "vmaxpd", { XM, Vex, EXx, EXxEVexS }, 0 },
3271   },
3272   /* EVEX_W_0F5F_P_3 */
3273   {
3274     { Bad_Opcode },
3275     { "vmaxsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 },
3276   },
3277   /* EVEX_W_0F62_P_2 */
3278   {
3279     { "vpunpckldq",     { XM, Vex, EXx }, 0 },
3280   },
3281   /* EVEX_W_0F66_P_2 */
3282   {
3283     { "vpcmpgtd",       { XMask, Vex, EXx }, 0 },
3284   },
3285   /* EVEX_W_0F6A_P_2 */
3286   {
3287     { "vpunpckhdq",     { XM, Vex, EXx }, 0 },
3288   },
3289   /* EVEX_W_0F6B_P_2 */
3290   {
3291     { "vpackssdw",      { XM, Vex, EXx }, 0 },
3292   },
3293   /* EVEX_W_0F6C_P_2 */
3294   {
3295     { Bad_Opcode },
3296     { "vpunpcklqdq",    { XM, Vex, EXx }, 0 },
3297   },
3298   /* EVEX_W_0F6D_P_2 */
3299   {
3300     { Bad_Opcode },
3301     { "vpunpckhqdq",    { XM, Vex, EXx }, 0 },
3302   },
3303   /* EVEX_W_0F6F_P_1 */
3304   {
3305     { "vmovdqu32",      { XM, EXEvexXNoBcst }, 0 },
3306     { "vmovdqu64",      { XM, EXEvexXNoBcst }, 0 },
3307   },
3308   /* EVEX_W_0F6F_P_2 */
3309   {
3310     { "vmovdqa32",      { XM, EXEvexXNoBcst }, 0 },
3311     { "vmovdqa64",      { XM, EXEvexXNoBcst }, 0 },
3312   },
3313   /* EVEX_W_0F6F_P_3 */
3314   {
3315     { "vmovdqu8",       { XM, EXx }, 0 },
3316     { "vmovdqu16",      { XM, EXx }, 0 },
3317   },
3318   /* EVEX_W_0F70_P_2 */
3319   {
3320     { "vpshufd",        { XM, EXx, Ib }, 0 },
3321   },
3322   /* EVEX_W_0F72_R_2_P_2 */
3323   {
3324     { "vpsrld", { Vex, EXx, Ib }, 0 },
3325   },
3326   /* EVEX_W_0F72_R_6_P_2 */
3327   {
3328     { "vpslld", { Vex, EXx, Ib }, 0 },
3329   },
3330   /* EVEX_W_0F73_R_2_P_2 */
3331   {
3332     { Bad_Opcode },
3333     { "vpsrlq", { Vex, EXx, Ib }, 0 },
3334   },
3335   /* EVEX_W_0F73_R_6_P_2 */
3336   {
3337     { Bad_Opcode },
3338     { "vpsllq", { Vex, EXx, Ib }, 0 },
3339   },
3340   /* EVEX_W_0F76_P_2 */
3341   {
3342     { "vpcmpeqd",       { XMask, Vex, EXx }, 0 },
3343   },
3344   /* EVEX_W_0F78_P_0 */
3345   {
3346     { "vcvttps2udq",    { XM, EXx, EXxEVexS }, 0 },
3347     { "vcvttpd2udq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
3348   },
3349   /* EVEX_W_0F78_P_2 */
3350   {
3351     { "vcvttps2uqq",    { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
3352     { "vcvttpd2uqq",    { XM, EXx, EXxEVexS }, 0 },
3353   },
3354   /* EVEX_W_0F79_P_0 */
3355   {
3356     { "vcvtps2udq",     { XM, EXx, EXxEVexR }, 0 },
3357     { "vcvtpd2udq%XY",  { XMxmmq, EXx, EXxEVexR }, 0 },
3358   },
3359   /* EVEX_W_0F79_P_2 */
3360   {
3361     { "vcvtps2uqq",     { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
3362     { "vcvtpd2uqq",     { XM, EXx, EXxEVexR }, 0 },
3363   },
3364   /* EVEX_W_0F7A_P_1 */
3365   {
3366     { "vcvtudq2pd",     { XM, EXEvexHalfBcstXmmq }, 0 },
3367     { "vcvtuqq2pd",     { XM, EXx, EXxEVexR }, 0 },
3368   },
3369   /* EVEX_W_0F7A_P_2 */
3370   {
3371     { "vcvttps2qq",     { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
3372     { "vcvttpd2qq",     { XM, EXx, EXxEVexS }, 0 },
3373   },
3374   /* EVEX_W_0F7A_P_3 */
3375   {
3376     { "vcvtudq2ps",     { XM, EXx, EXxEVexR }, 0 },
3377     { "vcvtuqq2ps%XY",  { XMxmmq, EXx, EXxEVexR }, 0 },
3378   },
3379   /* EVEX_W_0F7B_P_1 */
3380   {
3381     { "vcvtusi2ss%LQ",  { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
3382     { "vcvtusi2ss%LQ",  { XMScalar, VexScalar, EXxEVexR, Edqa }, 0 },
3383   },
3384   /* EVEX_W_0F7B_P_2 */
3385   {
3386     { "vcvtps2qq",      { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
3387     { "vcvtpd2qq",      { XM, EXx, EXxEVexR }, 0 },
3388   },
3389   /* EVEX_W_0F7B_P_3 */
3390   {
3391     { "vcvtusi2sd%LQ",  { XMScalar, VexScalar, Ed }, 0 },
3392     { "vcvtusi2sd%LQ",  { XMScalar, VexScalar, EXxEVexR64, Edqa }, 0 },
3393   },
3394   /* EVEX_W_0F7E_P_1 */
3395   {
3396     { Bad_Opcode },
3397     { "vmovq",  { XMScalar, EXxmm_mq }, 0 },
3398   },
3399   /* EVEX_W_0F7F_P_1 */
3400   {
3401     { "vmovdqu32",      { EXxS, XM }, 0 },
3402     { "vmovdqu64",      { EXxS, XM }, 0 },
3403   },
3404   /* EVEX_W_0F7F_P_2 */
3405   {
3406     { "vmovdqa32",      { EXxS, XM }, 0 },
3407     { "vmovdqa64",      { EXxS, XM }, 0 },
3408   },
3409   /* EVEX_W_0F7F_P_3 */
3410   {
3411     { "vmovdqu8",       { EXxS, XM }, 0 },
3412     { "vmovdqu16",      { EXxS, XM }, 0 },
3413   },
3414   /* EVEX_W_0FC2_P_0 */
3415   {
3416     { "vcmpps", { XMask, Vex, EXx, EXxEVexS, VCMP }, 0 },
3417   },
3418   /* EVEX_W_0FC2_P_1 */
3419   {
3420     { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, VCMP }, 0 },
3421   },
3422   /* EVEX_W_0FC2_P_2 */
3423   {
3424     { Bad_Opcode },
3425     { "vcmppd", { XMask, Vex, EXx, EXxEVexS, VCMP }, 0 },
3426   },
3427   /* EVEX_W_0FC2_P_3 */
3428   {
3429     { Bad_Opcode },
3430     { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, VCMP }, 0 },
3431   },
3432   /* EVEX_W_0FC6_P_0 */
3433   {
3434     { "vshufps",        { XM, Vex, EXx, Ib }, 0 },
3435   },
3436   /* EVEX_W_0FC6_P_2 */
3437   {
3438     { Bad_Opcode },
3439     { "vshufpd",        { XM, Vex, EXx, Ib }, 0 },
3440   },
3441   /* EVEX_W_0FD2_P_2 */
3442   {
3443     { "vpsrld", { XM, Vex, EXxmm }, 0 },
3444   },
3445   /* EVEX_W_0FD3_P_2 */
3446   {
3447     { Bad_Opcode },
3448     { "vpsrlq", { XM, Vex, EXxmm }, 0 },
3449   },
3450   /* EVEX_W_0FD4_P_2 */
3451   {
3452     { Bad_Opcode },
3453     { "vpaddq", { XM, Vex, EXx }, 0 },
3454   },
3455   /* EVEX_W_0FD6_P_2 */
3456   {
3457     { Bad_Opcode },
3458     { "vmovq",  { EXxmm_mq, XMScalar }, 0 },
3459   },
3460   /* EVEX_W_0FE6_P_1 */
3461   {
3462     { "vcvtdq2pd",      { XM, EXEvexHalfBcstXmmq }, 0 },
3463     { "vcvtqq2pd",      { XM, EXx, EXxEVexR }, 0 },
3464   },
3465   /* EVEX_W_0FE6_P_2 */
3466   {
3467     { Bad_Opcode },
3468     { "vcvttpd2dq%XY",  { XMxmmq, EXx, EXxEVexS }, 0 },
3469   },
3470   /* EVEX_W_0FE6_P_3 */
3471   {
3472     { Bad_Opcode },
3473     { "vcvtpd2dq%XY",   { XMxmmq, EXx, EXxEVexR }, 0 },
3474   },
3475   /* EVEX_W_0FE7_P_2 */
3476   {
3477     { "vmovntdq",       { EXEvexXNoBcst, XM }, 0 },
3478   },
3479   /* EVEX_W_0FF2_P_2 */
3480   {
3481     { "vpslld", { XM, Vex, EXxmm }, 0 },
3482   },
3483   /* EVEX_W_0FF3_P_2 */
3484   {
3485     { Bad_Opcode },
3486     { "vpsllq", { XM, Vex, EXxmm }, 0 },
3487   },
3488   /* EVEX_W_0FF4_P_2 */
3489   {
3490     { Bad_Opcode },
3491     { "vpmuludq",       { XM, Vex, EXx }, 0 },
3492   },
3493   /* EVEX_W_0FFA_P_2 */
3494   {
3495     { "vpsubd", { XM, Vex, EXx }, 0 },
3496   },
3497   /* EVEX_W_0FFB_P_2 */
3498   {
3499     { Bad_Opcode },
3500     { "vpsubq", { XM, Vex, EXx }, 0 },
3501   },
3502   /* EVEX_W_0FFE_P_2 */
3503   {
3504     { "vpaddd", { XM, Vex, EXx }, 0 },
3505   },
3506   /* EVEX_W_0F380C_P_2 */
3507   {
3508     { "vpermilps",      { XM, Vex, EXx }, 0 },
3509   },
3510   /* EVEX_W_0F380D_P_2 */
3511   {
3512     { Bad_Opcode },
3513     { "vpermilpd",      { XM, Vex, EXx }, 0 },
3514   },
3515   /* EVEX_W_0F3810_P_1 */
3516   {
3517     { "vpmovuswb",      { EXxmmq, XM }, 0 },
3518   },
3519   /* EVEX_W_0F3810_P_2 */
3520   {
3521     { Bad_Opcode },
3522     { "vpsrlvw",        { XM, Vex, EXx }, 0 },
3523   },
3524   /* EVEX_W_0F3811_P_1 */
3525   {
3526     { "vpmovusdb",      { EXxmmqd, XM }, 0 },
3527   },
3528   /* EVEX_W_0F3811_P_2 */
3529   {
3530     { Bad_Opcode },
3531     { "vpsravw",        { XM, Vex, EXx }, 0 },
3532   },
3533   /* EVEX_W_0F3812_P_1 */
3534   {
3535     { "vpmovusqb",      { EXxmmdw, XM }, 0 },
3536   },
3537   /* EVEX_W_0F3812_P_2 */
3538   {
3539     { Bad_Opcode },
3540     { "vpsllvw",        { XM, Vex, EXx }, 0 },
3541   },
3542   /* EVEX_W_0F3813_P_1 */
3543   {
3544     { "vpmovusdw",      { EXxmmq, XM }, 0 },
3545   },
3546   /* EVEX_W_0F3813_P_2 */
3547   {
3548     { "vcvtph2ps",      { XM, EXxmmq, EXxEVexS }, 0 },
3549   },
3550   /* EVEX_W_0F3814_P_1 */
3551   {
3552     { "vpmovusqw",      { EXxmmqd, XM }, 0 },
3553   },
3554   /* EVEX_W_0F3815_P_1 */
3555   {
3556     { "vpmovusqd",      { EXxmmq, XM }, 0 },
3557   },
3558   /* EVEX_W_0F3818_P_2 */
3559   {
3560     { "vbroadcastss",   { XM, EXxmm_md }, 0 },
3561   },
3562   /* EVEX_W_0F3819_P_2 */
3563   {
3564     { "vbroadcastf32x2",        { XM, EXxmm_mq }, 0 },
3565     { "vbroadcastsd",   { XM, EXxmm_mq }, 0 },
3566   },
3567   /* EVEX_W_0F381A_P_2 */
3568   {
3569     { "vbroadcastf32x4",        { XM, EXxmm }, 0 },
3570     { "vbroadcastf64x2",        { XM, EXxmm }, 0 },
3571   },
3572   /* EVEX_W_0F381B_P_2 */
3573   {
3574     { "vbroadcastf32x8",        { XM, EXxmmq }, 0 },
3575     { "vbroadcastf64x4",        { XM, EXymm }, 0 },
3576   },
3577   /* EVEX_W_0F381E_P_2 */
3578   {
3579     { "vpabsd", { XM, EXx }, 0 },
3580   },
3581   /* EVEX_W_0F381F_P_2 */
3582   {
3583     { Bad_Opcode },
3584     { "vpabsq", { XM, EXx }, 0 },
3585   },
3586   /* EVEX_W_0F3820_P_1 */
3587   {
3588     { "vpmovswb",       { EXxmmq, XM }, 0 },
3589   },
3590   /* EVEX_W_0F3821_P_1 */
3591   {
3592     { "vpmovsdb",       { EXxmmqd, XM }, 0 },
3593   },
3594   /* EVEX_W_0F3822_P_1 */
3595   {
3596     { "vpmovsqb",       { EXxmmdw, XM }, 0 },
3597   },
3598   /* EVEX_W_0F3823_P_1 */
3599   {
3600     { "vpmovsdw",       { EXxmmq, XM }, 0 },
3601   },
3602   /* EVEX_W_0F3824_P_1 */
3603   {
3604     { "vpmovsqw",       { EXxmmqd, XM }, 0 },
3605   },
3606   /* EVEX_W_0F3825_P_1 */
3607   {
3608     { "vpmovsqd",       { EXxmmq, XM }, 0 },
3609   },
3610   /* EVEX_W_0F3825_P_2 */
3611   {
3612     { "vpmovsxdq",      { XM, EXxmmq }, 0 },
3613   },
3614   /* EVEX_W_0F3826_P_1 */
3615   {
3616     { "vptestnmb",      { XMask, Vex, EXx }, 0 },
3617     { "vptestnmw",      { XMask, Vex, EXx }, 0 },
3618   },
3619   /* EVEX_W_0F3826_P_2 */
3620   {
3621     { "vptestmb",       { XMask, Vex, EXx }, 0 },
3622     { "vptestmw",       { XMask, Vex, EXx }, 0 },
3623   },
3624   /* EVEX_W_0F3828_P_1 */
3625   {
3626     { "vpmovm2b",       { XM, MaskR }, 0 },
3627     { "vpmovm2w",       { XM, MaskR }, 0 },
3628   },
3629   /* EVEX_W_0F3828_P_2 */
3630   {
3631     { Bad_Opcode },
3632     { "vpmuldq",        { XM, Vex, EXx }, 0 },
3633   },
3634   /* EVEX_W_0F3829_P_1 */
3635   {
3636     { "vpmovb2m",       { XMask, EXx }, 0 },
3637     { "vpmovw2m",       { XMask, EXx }, 0 },
3638   },
3639   /* EVEX_W_0F3829_P_2 */
3640   {
3641     { Bad_Opcode },
3642     { "vpcmpeqq",       { XMask, Vex, EXx }, 0 },
3643   },
3644   /* EVEX_W_0F382A_P_1 */
3645   {
3646     { Bad_Opcode },
3647     { "vpbroadcastmb2q",        { XM, MaskR }, 0 },
3648   },
3649   /* EVEX_W_0F382A_P_2 */
3650   {
3651     { "vmovntdqa",      { XM, EXEvexXNoBcst }, 0 },
3652   },
3653   /* EVEX_W_0F382B_P_2 */
3654   {
3655     { "vpackusdw",      { XM, Vex, EXx }, 0 },
3656   },
3657   /* EVEX_W_0F3830_P_1 */
3658   {
3659     { "vpmovwb",        { EXxmmq, XM }, 0 },
3660   },
3661   /* EVEX_W_0F3831_P_1 */
3662   {
3663     { "vpmovdb",        { EXxmmqd, XM }, 0 },
3664   },
3665   /* EVEX_W_0F3832_P_1 */
3666   {
3667     { "vpmovqb",        { EXxmmdw, XM }, 0 },
3668   },
3669   /* EVEX_W_0F3833_P_1 */
3670   {
3671     { "vpmovdw",        { EXxmmq, XM }, 0 },
3672   },
3673   /* EVEX_W_0F3834_P_1 */
3674   {
3675     { "vpmovqw",        { EXxmmqd, XM }, 0 },
3676   },
3677   /* EVEX_W_0F3835_P_1 */
3678   {
3679     { "vpmovqd",        { EXxmmq, XM }, 0 },
3680   },
3681   /* EVEX_W_0F3835_P_2 */
3682   {
3683     { "vpmovzxdq",      { XM, EXxmmq }, 0 },
3684   },
3685   /* EVEX_W_0F3837_P_2 */
3686   {
3687     { Bad_Opcode },
3688     { "vpcmpgtq",       { XMask, Vex, EXx }, 0 },
3689   },
3690   /* EVEX_W_0F3838_P_1 */
3691   {
3692     { "vpmovm2d",       { XM, MaskR }, 0 },
3693     { "vpmovm2q",       { XM, MaskR }, 0 },
3694   },
3695   /* EVEX_W_0F3839_P_1 */
3696   {
3697     { "vpmovd2m",       { XMask, EXx }, 0 },
3698     { "vpmovq2m",       { XMask, EXx }, 0 },
3699   },
3700   /* EVEX_W_0F383A_P_1 */
3701   {
3702     { "vpbroadcastmw2d",        { XM, MaskR }, 0 },
3703   },
3704   /* EVEX_W_0F3840_P_2 */
3705   {
3706     { "vpmulld",        { XM, Vex, EXx }, 0 },
3707     { "vpmullq",        { XM, Vex, EXx }, 0 },
3708   },
3709   /* EVEX_W_0F3852_P_1 */
3710   {
3711     { "vdpbf16ps",      { XM, Vex, EXx }, 0 },
3712     { Bad_Opcode },
3713   },
3714   /* EVEX_W_0F3854_P_2 */
3715   {
3716     { "vpopcntb",       { XM, EXx }, 0 },
3717     { "vpopcntw",       { XM, EXx }, 0 },
3718   },
3719   /* EVEX_W_0F3855_P_2 */
3720   {
3721     { "vpopcntd",       { XM, EXx }, 0 },
3722     { "vpopcntq",       { XM, EXx }, 0 },
3723   },
3724   /* EVEX_W_0F3858_P_2 */
3725   {
3726     { "vpbroadcastd",   { XM, EXxmm_md }, 0 },
3727   },
3728   /* EVEX_W_0F3859_P_2 */
3729   {
3730     { "vbroadcasti32x2",        { XM, EXxmm_mq }, 0 },
3731     { "vpbroadcastq",   { XM, EXxmm_mq }, 0 },
3732   },
3733   /* EVEX_W_0F385A_P_2 */
3734   {
3735     { "vbroadcasti32x4",        { XM, EXxmm }, 0 },
3736     { "vbroadcasti64x2",        { XM, EXxmm }, 0 },
3737   },
3738   /* EVEX_W_0F385B_P_2 */
3739   {
3740     { "vbroadcasti32x8",        { XM, EXxmmq }, 0 },
3741     { "vbroadcasti64x4",        { XM, EXymm }, 0 },
3742   },
3743   /* EVEX_W_0F3862_P_2 */
3744   {
3745     { "vpexpandb", { XM, EXbScalar }, 0 },
3746     { "vpexpandw", { XM, EXwScalar }, 0 },
3747   },
3748   /* EVEX_W_0F3863_P_2 */
3749   {
3750     { "vpcompressb",   { EXbScalar, XM }, 0 },
3751     { "vpcompressw",   { EXwScalar, XM }, 0 },
3752   },
3753   /* EVEX_W_0F3866_P_2 */
3754   {
3755     { "vpblendmb",      { XM, Vex, EXx }, 0 },
3756     { "vpblendmw",      { XM, Vex, EXx }, 0 },
3757   },
3758   /* EVEX_W_0F3870_P_2 */
3759   {
3760     { Bad_Opcode },
3761     { "vpshldvw",  { XM, Vex, EXx }, 0 },
3762   },
3763   /* EVEX_W_0F3871_P_2 */
3764   {
3765     { "vpshldvd",  { XM, Vex, EXx }, 0 },
3766     { "vpshldvq",  { XM, Vex, EXx }, 0 },
3767   },
3768   /* EVEX_W_0F3872_P_1 */
3769   {
3770     { "vcvtneps2bf16%XY", { XMxmmq, EXx }, 0 },
3771     { Bad_Opcode },
3772   },
3773   /* EVEX_W_0F3872_P_2 */
3774   {
3775     { Bad_Opcode },
3776     { "vpshrdvw",  { XM, Vex, EXx }, 0 },
3777   },
3778   /* EVEX_W_0F3872_P_3 */
3779   {
3780     { "vcvtne2ps2bf16", { XM, Vex, EXx}, 0 },
3781     { Bad_Opcode },
3782   },
3783   /* EVEX_W_0F3873_P_2 */
3784   {
3785     { "vpshrdvd",  { XM, Vex, EXx }, 0 },
3786     { "vpshrdvq",  { XM, Vex, EXx }, 0 },
3787   },
3788   /* EVEX_W_0F3875_P_2 */
3789   {
3790     { "vpermi2b",       { XM, Vex, EXx }, 0 },
3791     { "vpermi2w",       { XM, Vex, EXx }, 0 },
3792   },
3793   /* EVEX_W_0F3878_P_2 */
3794   {
3795     { "vpbroadcastb",   { XM, EXxmm_mb }, 0 },
3796   },
3797   /* EVEX_W_0F3879_P_2 */
3798   {
3799     { "vpbroadcastw",   { XM, EXxmm_mw }, 0 },
3800   },
3801   /* EVEX_W_0F387A_P_2 */
3802   {
3803     { "vpbroadcastb",   { XM, Rd }, 0 },
3804   },
3805   /* EVEX_W_0F387B_P_2 */
3806   {
3807     { "vpbroadcastw",   { XM, Rd }, 0 },
3808   },
3809   /* EVEX_W_0F387D_P_2 */
3810   {
3811     { "vpermt2b",       { XM, Vex, EXx }, 0 },
3812     { "vpermt2w",       { XM, Vex, EXx }, 0 },
3813   },
3814   /* EVEX_W_0F3883_P_2 */
3815   {
3816     { Bad_Opcode },
3817     { "vpmultishiftqb", { XM, Vex, EXx }, 0 },
3818   },
3819   /* EVEX_W_0F388D_P_2 */
3820   {
3821     { "vpermb", { XM, Vex, EXx }, 0 },
3822     { "vpermw", { XM, Vex, EXx }, 0 },
3823   },
3824   /* EVEX_W_0F3891_P_2 */
3825   {
3826     { "vpgatherqd",     { XMxmmq, MVexVSIBQDWpX }, 0 },
3827     { "vpgatherqq",     { XM, MVexVSIBQWpX }, 0 },
3828   },
3829   /* EVEX_W_0F3893_P_2 */
3830   {
3831     { "vgatherqps",     { XMxmmq, MVexVSIBQDWpX }, 0 },
3832     { "vgatherqpd",     { XM, MVexVSIBQWpX }, 0 },
3833   },
3834   /* EVEX_W_0F38A1_P_2 */
3835   {
3836     { "vpscatterqd",    { MVexVSIBQDWpX, XMxmmq }, 0 },
3837     { "vpscatterqq",    { MVexVSIBQWpX, XM }, 0 },
3838   },
3839   /* EVEX_W_0F38A3_P_2 */
3840   {
3841     { "vscatterqps",    { MVexVSIBQDWpX, XMxmmq }, 0 },
3842     { "vscatterqpd",    { MVexVSIBQWpX, XM }, 0 },
3843   },
3844   /* EVEX_W_0F38C7_R_1_P_2 */
3845   {
3846     { "vgatherpf0qps",  { MVexVSIBDQWpX }, 0 },
3847     { "vgatherpf0qpd",  { MVexVSIBQWpX }, 0 },
3848   },
3849   /* EVEX_W_0F38C7_R_2_P_2 */
3850   {
3851     { "vgatherpf1qps",  { MVexVSIBDQWpX }, 0 },
3852     { "vgatherpf1qpd",  { MVexVSIBQWpX }, 0 },
3853   },
3854   /* EVEX_W_0F38C7_R_5_P_2 */
3855   {
3856     { "vscatterpf0qps",  { MVexVSIBDQWpX }, 0 },
3857     { "vscatterpf0qpd",  { MVexVSIBQWpX }, 0 },
3858   },
3859   /* EVEX_W_0F38C7_R_6_P_2 */
3860   {
3861     { "vscatterpf1qps",  { MVexVSIBDQWpX }, 0 },
3862     { "vscatterpf1qpd",  { MVexVSIBQWpX }, 0 },
3863   },
3864   /* EVEX_W_0F3A00_P_2 */
3865   {
3866     { Bad_Opcode },
3867     { "vpermq", { XM, EXx, Ib }, 0 },
3868   },
3869   /* EVEX_W_0F3A01_P_2 */
3870   {
3871     { Bad_Opcode },
3872     { "vpermpd",        { XM, EXx, Ib }, 0 },
3873   },
3874   /* EVEX_W_0F3A04_P_2 */
3875   {
3876     { "vpermilps",      { XM, EXx, Ib }, 0 },
3877   },
3878   /* EVEX_W_0F3A05_P_2 */
3879   {
3880     { Bad_Opcode },
3881     { "vpermilpd",      { XM, EXx, Ib }, 0 },
3882   },
3883   /* EVEX_W_0F3A08_P_2 */
3884   {
3885     { "vrndscaleps",    { XM, EXx, EXxEVexS, Ib }, 0 },
3886   },
3887   /* EVEX_W_0F3A09_P_2 */
3888   {
3889     { Bad_Opcode },
3890     { "vrndscalepd",    { XM, EXx, EXxEVexS, Ib }, 0 },
3891   },
3892   /* EVEX_W_0F3A0A_P_2 */
3893   {
3894     { "vrndscaless",    { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
3895   },
3896   /* EVEX_W_0F3A0B_P_2 */
3897   {
3898     { Bad_Opcode },
3899     { "vrndscalesd",    { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
3900   },
3901   /* EVEX_W_0F3A18_P_2 */
3902   {
3903     { "vinsertf32x4",   { XM, Vex, EXxmm, Ib }, 0 },
3904     { "vinsertf64x2",   { XM, Vex, EXxmm, Ib }, 0 },
3905   },
3906   /* EVEX_W_0F3A19_P_2 */
3907   {
3908     { "vextractf32x4",  { EXxmm, XM, Ib }, 0 },
3909     { "vextractf64x2",  { EXxmm, XM, Ib }, 0 },
3910   },
3911   /* EVEX_W_0F3A1A_P_2 */
3912   {
3913     { "vinsertf32x8",   { XM, Vex, EXxmmq, Ib }, 0 },
3914     { "vinsertf64x4",   { XM, Vex, EXxmmq, Ib }, 0 },
3915   },
3916   /* EVEX_W_0F3A1B_P_2 */
3917   {
3918     { "vextractf32x8",  { EXxmmq, XM, Ib }, 0 },
3919     { "vextractf64x4",  { EXxmmq, XM, Ib }, 0 },
3920   },
3921   /* EVEX_W_0F3A1D_P_2 */
3922   {
3923     { "vcvtps2ph",      { EXxmmq, XM, EXxEVexS, Ib }, 0 },
3924   },
3925   /* EVEX_W_0F3A21_P_2 */
3926   {
3927     { "vinsertps",      { XMM, Vex, EXxmm_md, Ib }, 0 },
3928   },
3929   /* EVEX_W_0F3A23_P_2 */
3930   {
3931     { "vshuff32x4",     { XM, Vex, EXx, Ib }, 0 },
3932     { "vshuff64x2",     { XM, Vex, EXx, Ib }, 0 },
3933   },
3934   /* EVEX_W_0F3A38_P_2 */
3935   {
3936     { "vinserti32x4",   { XM, Vex, EXxmm, Ib }, 0 },
3937     { "vinserti64x2",   { XM, Vex, EXxmm, Ib }, 0 },
3938   },
3939   /* EVEX_W_0F3A39_P_2 */
3940   {
3941     { "vextracti32x4",  { EXxmm, XM, Ib }, 0 },
3942     { "vextracti64x2",  { EXxmm, XM, Ib }, 0 },
3943   },
3944   /* EVEX_W_0F3A3A_P_2 */
3945   {
3946     { "vinserti32x8",   { XM, Vex, EXxmmq, Ib }, 0 },
3947     { "vinserti64x4",   { XM, Vex, EXxmmq, Ib }, 0 },
3948   },
3949   /* EVEX_W_0F3A3B_P_2 */
3950   {
3951     { "vextracti32x8",  { EXxmmq, XM, Ib }, 0 },
3952     { "vextracti64x4",  { EXxmmq, XM, Ib }, 0 },
3953   },
3954   /* EVEX_W_0F3A3E_P_2 */
3955   {
3956     { "vpcmpub",        { XMask, Vex, EXx, VPCMP }, 0 },
3957     { "vpcmpuw",        { XMask, Vex, EXx, VPCMP }, 0 },
3958   },
3959   /* EVEX_W_0F3A3F_P_2 */
3960   {
3961     { "vpcmpb", { XMask, Vex, EXx, VPCMP }, 0 },
3962     { "vpcmpw", { XMask, Vex, EXx, VPCMP }, 0 },
3963   },
3964   /* EVEX_W_0F3A42_P_2 */
3965   {
3966     { "vdbpsadbw",      { XM, Vex, EXx, Ib }, 0 },
3967   },
3968   /* EVEX_W_0F3A43_P_2 */
3969   {
3970     { "vshufi32x4",     { XM, Vex, EXx, Ib }, 0 },
3971     { "vshufi64x2",     { XM, Vex, EXx, Ib }, 0 },
3972   },
3973   /* EVEX_W_0F3A50_P_2 */
3974   {
3975     { "vrangeps",       { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
3976     { "vrangepd",       { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
3977   },
3978   /* EVEX_W_0F3A51_P_2 */
3979   {
3980     { "vrangess",       { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
3981     { "vrangesd",       { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
3982   },
3983   /* EVEX_W_0F3A56_P_2 */
3984   {
3985     { "vreduceps",      { XM, EXx, EXxEVexS, Ib }, 0 },
3986     { "vreducepd",      { XM, EXx, EXxEVexS, Ib }, 0 },
3987   },
3988   /* EVEX_W_0F3A57_P_2 */
3989   {
3990     { "vreducess",      { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
3991     { "vreducesd",      { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
3992   },
3993   /* EVEX_W_0F3A66_P_2 */
3994   {
3995     { "vfpclassps%XZ",  { XMask, EXx, Ib }, 0 },
3996     { "vfpclasspd%XZ",  { XMask, EXx, Ib }, 0 },
3997   },
3998   /* EVEX_W_0F3A67_P_2 */
3999   {
4000     { "vfpclassss",     { XMask, EXxmm_md, Ib }, 0 },
4001     { "vfpclasssd",     { XMask, EXxmm_mq, Ib }, 0 },
4002   },
4003   /* EVEX_W_0F3A70_P_2 */
4004   {
4005     { Bad_Opcode },
4006     { "vpshldw",   { XM, Vex, EXx, Ib }, 0 },
4007   },
4008   /* EVEX_W_0F3A71_P_2 */
4009   {
4010     { "vpshldd",   { XM, Vex, EXx, Ib }, 0 },
4011     { "vpshldq",   { XM, Vex, EXx, Ib }, 0 },
4012   },
4013   /* EVEX_W_0F3A72_P_2 */
4014   {
4015     { Bad_Opcode },
4016     { "vpshrdw",   { XM, Vex, EXx, Ib }, 0 },
4017   },
4018   /* EVEX_W_0F3A73_P_2 */
4019   {
4020     { "vpshrdd",   { XM, Vex, EXx, Ib }, 0 },
4021     { "vpshrdq",   { XM, Vex, EXx, Ib }, 0 },
4022   },
4023   /* EVEX_W_0F3ACE_P_2 */
4024   {
4025     { Bad_Opcode },
4026     { "vgf2p8affineqb",    { XM, Vex, EXx, Ib }, 0 },
4027   },
4028   /* EVEX_W_0F3ACF_P_2 */
4029   {
4030     { Bad_Opcode },
4031     { "vgf2p8affineinvqb", { XM, Vex, EXx, Ib }, 0 },
4032   },
4033 #endif /* NEED_VEX_W_TABLE */
4034 #ifdef NEED_MOD_TABLE
4035   {
4036     /* MOD_EVEX_0F10_PREFIX_1 */
4037     { VEX_W_TABLE (EVEX_W_0F10_P_1_M_0) },
4038     { VEX_W_TABLE (EVEX_W_0F10_P_1_M_1) },
4039   },
4040   {
4041     /* MOD_EVEX_0F10_PREFIX_3 */
4042     { VEX_W_TABLE (EVEX_W_0F10_P_3_M_0) },
4043     { VEX_W_TABLE (EVEX_W_0F10_P_3_M_1) },
4044   },
4045   {
4046     /* MOD_EVEX_0F11_PREFIX_1 */
4047     { VEX_W_TABLE (EVEX_W_0F11_P_1_M_0) },
4048     { VEX_W_TABLE (EVEX_W_0F11_P_1_M_1) },
4049   },
4050   {
4051     /* MOD_EVEX_0F11_PREFIX_3 */
4052     { VEX_W_TABLE (EVEX_W_0F11_P_3_M_0) },
4053     { VEX_W_TABLE (EVEX_W_0F11_P_3_M_1) },
4054   },
4055   {
4056     /* MOD_EVEX_0F12_PREFIX_0 */
4057     { VEX_W_TABLE (EVEX_W_0F12_P_0_M_0) },
4058     { VEX_W_TABLE (EVEX_W_0F12_P_0_M_1) },
4059   },
4060   {
4061     /* MOD_EVEX_0F16_PREFIX_0 */
4062     { VEX_W_TABLE (EVEX_W_0F16_P_0_M_0) },
4063     { VEX_W_TABLE (EVEX_W_0F16_P_0_M_1) },
4064   },
4065   {
4066     /* MOD_EVEX_0F38C6_REG_1 */
4067     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) },
4068   },
4069   {
4070     /* MOD_EVEX_0F38C6_REG_2 */
4071     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_2) },
4072   },
4073   {
4074     /* MOD_EVEX_0F38C6_REG_5 */
4075     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_5) },
4076   },
4077   {
4078     /* MOD_EVEX_0F38C6_REG_6 */
4079     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_6) },
4080   },
4081   {
4082     /* MOD_EVEX_0F38C7_REG_1 */
4083     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_1) },
4084   },
4085   {
4086     /* MOD_EVEX_0F38C7_REG_2 */
4087     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_2) },
4088   },
4089   {
4090     /* MOD_EVEX_0F38C7_REG_5 */
4091     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_5) },
4092   },
4093   {
4094     /* MOD_EVEX_0F38C7_REG_6 */
4095     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
4096   },
4097 #endif /* NEED_MOD_TABLE */
4098
4099 #ifdef NEED_EVEX_LEN_TABLE
4100   /* EVEX_LEN_0F6E_P_2 */
4101   {
4102     { "vmovK",  { XMScalar, Edq }, 0 },
4103   },
4104
4105   /* EVEX_LEN_0F7E_P_1 */
4106   {
4107     { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
4108   },
4109
4110   /* EVEX_LEN_0F7E_P_2 */
4111   {
4112     { "vmovK",  { Edq, XMScalar }, 0 },
4113   },
4114
4115   /* EVEX_LEN_0FD6_P_2 */
4116   {
4117     { VEX_W_TABLE (EVEX_W_0FD6_P_2) },
4118   },
4119
4120 #endif /* NEED_EVEX_LEN_TABLE */