1  /* EVEX_W_0F5B_P_0 */
2  {
3    { "vcvtdq2ps",	{ XM, EXx, EXxEVexR }, 0 },
4    { "vcvtqq2ps%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
5  },
6  /* EVEX_W_0F62 */
7  {
8    { "vpunpckldq",	{ XM, Vex, EXx }, PREFIX_DATA },
9  },
10  /* EVEX_W_0F66 */
11  {
12    { "vpcmpgtd",	{ MaskG, Vex, EXx }, PREFIX_DATA },
13  },
14  /* EVEX_W_0F6A */
15  {
16    { "vpunpckhdq",	{ XM, Vex, EXx }, PREFIX_DATA },
17  },
18  /* EVEX_W_0F6B */
19  {
20    { "vpackssdw",	{ XM, Vex, EXx }, PREFIX_DATA },
21  },
22  /* EVEX_W_0F6C */
23  {
24    { Bad_Opcode },
25    { "vpunpcklqdq",	{ XM, Vex, EXx }, PREFIX_DATA },
26  },
27  /* EVEX_W_0F6D */
28  {
29    { Bad_Opcode },
30    { "vpunpckhqdq",	{ XM, Vex, EXx }, PREFIX_DATA },
31  },
32  /* EVEX_W_0F6F_P_1 */
33  {
34    { "vmovdqu32",	{ XM, EXEvexXNoBcst }, 0 },
35    { "vmovdqu64",	{ XM, EXEvexXNoBcst }, 0 },
36  },
37  /* EVEX_W_0F6F_P_2 */
38  {
39    { "vmovdqa32",	{ XM, EXEvexXNoBcst }, 0 },
40    { "vmovdqa64",	{ XM, EXEvexXNoBcst }, 0 },
41  },
42  /* EVEX_W_0F6F_P_3 */
43  {
44    { "vmovdqu8",	{ XM, EXx }, 0 },
45    { "vmovdqu16",	{ XM, EXx }, 0 },
46  },
47  /* EVEX_W_0F70_P_2 */
48  {
49    { "vpshufd",	{ XM, EXx, Ib }, 0 },
50  },
51  /* EVEX_W_0F72_R_2 */
52  {
53    { "vpsrld",	{ Vex, EXx, Ib }, PREFIX_DATA },
54  },
55  /* EVEX_W_0F72_R_6 */
56  {
57    { "vpslld",	{ Vex, EXx, Ib }, PREFIX_DATA },
58  },
59  /* EVEX_W_0F73_R_2 */
60  {
61    { Bad_Opcode },
62    { "vpsrlq",	{ Vex, EXx, Ib }, PREFIX_DATA },
63  },
64  /* EVEX_W_0F73_R_6 */
65  {
66    { Bad_Opcode },
67    { "vpsllq",	{ Vex, EXx, Ib }, PREFIX_DATA },
68  },
69  /* EVEX_W_0F76 */
70  {
71    { "vpcmpeqd",	{ MaskG, Vex, EXx }, PREFIX_DATA },
72  },
73  /* EVEX_W_0F78_P_0 */
74  {
75    { "vcvttps2udq",	{ XM, EXx, EXxEVexS }, 0 },
76    { "vcvttpd2udq%XY",	{ XMxmmq, EXx, EXxEVexS }, 0 },
77  },
78  /* EVEX_W_0F78_P_2 */
79  {
80    { "vcvttps2uqq",	{ XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
81    { "vcvttpd2uqq",	{ XM, EXx, EXxEVexS }, 0 },
82  },
83  /* EVEX_W_0F79_P_0 */
84  {
85    { "vcvtps2udq",	{ XM, EXx, EXxEVexR }, 0 },
86    { "vcvtpd2udq%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
87  },
88  /* EVEX_W_0F79_P_2 */
89  {
90    { "vcvtps2uqq",	{ XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
91    { "vcvtpd2uqq",	{ XM, EXx, EXxEVexR }, 0 },
92  },
93  /* EVEX_W_0F7A_P_1 */
94  {
95    { "vcvtudq2pd",	{ XM, EXEvexHalfBcstXmmq }, 0 },
96    { "vcvtuqq2pd",	{ XM, EXx, EXxEVexR }, 0 },
97  },
98  /* EVEX_W_0F7A_P_2 */
99  {
100    { "vcvttps2qq",	{ XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
101    { "vcvttpd2qq",	{ XM, EXx, EXxEVexS }, 0 },
102  },
103  /* EVEX_W_0F7A_P_3 */
104  {
105    { "vcvtudq2ps",	{ XM, EXx, EXxEVexR }, 0 },
106    { "vcvtuqq2ps%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
107  },
108  /* EVEX_W_0F7B_P_2 */
109  {
110    { "vcvtps2qq",	{ XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
111    { "vcvtpd2qq",	{ XM, EXx, EXxEVexR }, 0 },
112  },
113  /* EVEX_W_0F7E_P_1 */
114  {
115    { Bad_Opcode },
116    { VEX_LEN_TABLE (VEX_LEN_0F7E_P_1) },
117  },
118  /* EVEX_W_0F7F_P_1 */
119  {
120    { "vmovdqu32",	{ EXxS, XM }, 0 },
121    { "vmovdqu64",	{ EXxS, XM }, 0 },
122  },
123  /* EVEX_W_0F7F_P_2 */
124  {
125    { "vmovdqa32",	{ EXxS, XM }, 0 },
126    { "vmovdqa64",	{ EXxS, XM }, 0 },
127  },
128  /* EVEX_W_0F7F_P_3 */
129  {
130    { "vmovdqu8",	{ EXxS, XM }, 0 },
131    { "vmovdqu16",	{ EXxS, XM }, 0 },
132  },
133  /* EVEX_W_0FD2 */
134  {
135    { "vpsrld",		{ XM, Vex, EXxmm }, PREFIX_DATA },
136  },
137  /* EVEX_W_0FD3 */
138  {
139    { Bad_Opcode },
140    { "vpsrlq",		{ XM, Vex, EXxmm }, PREFIX_DATA },
141  },
142  /* EVEX_W_0FD4 */
143  {
144    { Bad_Opcode },
145    { "vpaddq",		{ XM, Vex, EXx }, PREFIX_DATA },
146  },
147  /* EVEX_W_0FD6 */
148  {
149    { Bad_Opcode },
150    { VEX_LEN_TABLE (VEX_LEN_0FD6) },
151  },
152  /* EVEX_W_0FE6_P_1 */
153  {
154    { "vcvtdq2pd",	{ XM, EXEvexHalfBcstXmmq }, 0 },
155    { "vcvtqq2pd",	{ XM, EXx, EXxEVexR }, 0 },
156  },
157  /* EVEX_W_0FE7 */
158  {
159    { "vmovntdq",	{ EXEvexXNoBcst, XM }, PREFIX_DATA },
160  },
161  /* EVEX_W_0FF2 */
162  {
163    { "vpslld",		{ XM, Vex, EXxmm }, PREFIX_DATA },
164  },
165  /* EVEX_W_0FF3 */
166  {
167    { Bad_Opcode },
168    { "vpsllq",		{ XM, Vex, EXxmm }, PREFIX_DATA },
169  },
170  /* EVEX_W_0FF4 */
171  {
172    { Bad_Opcode },
173    { "vpmuludq",	{ XM, Vex, EXx }, PREFIX_DATA },
174  },
175  /* EVEX_W_0FFA */
176  {
177    { "vpsubd",		{ XM, Vex, EXx }, PREFIX_DATA },
178  },
179  /* EVEX_W_0FFB */
180  {
181    { Bad_Opcode },
182    { "vpsubq",		{ XM, Vex, EXx }, PREFIX_DATA },
183  },
184  /* EVEX_W_0FFE */
185  {
186    { "vpaddd",		{ XM, Vex, EXx }, PREFIX_DATA },
187  },
188  /* EVEX_W_0F3810_P_1 */
189  {
190    { "vpmovuswb",	{ EXxmmq, XM }, 0 },
191  },
192  /* EVEX_W_0F3810_P_2 */
193  {
194    { Bad_Opcode },
195    { "vpsrlvw",	{ XM, Vex, EXx }, 0 },
196  },
197  /* EVEX_W_0F3811_P_1 */
198  {
199    { "vpmovusdb",	{ EXxmmqd, XM }, 0 },
200  },
201  /* EVEX_W_0F3811_P_2 */
202  {
203    { Bad_Opcode },
204    { "vpsravw",	{ XM, Vex, EXx }, 0 },
205  },
206  /* EVEX_W_0F3812_P_1 */
207  {
208    { "vpmovusqb",	{ EXxmmdw, XM }, 0 },
209  },
210  /* EVEX_W_0F3812_P_2 */
211  {
212    { Bad_Opcode },
213    { "vpsllvw",	{ XM, Vex, EXx }, 0 },
214  },
215  /* EVEX_W_0F3813_P_1 */
216  {
217    { "vpmovusdw",	{ EXxmmq, XM }, 0 },
218  },
219  /* EVEX_W_0F3814_P_1 */
220  {
221    { "vpmovusqw",	{ EXxmmqd, XM }, 0 },
222  },
223  /* EVEX_W_0F3815_P_1 */
224  {
225    { "vpmovusqd",	{ EXxmmq, XM }, 0 },
226  },
227  /* EVEX_W_0F3819_L_n */
228  {
229    { "vbroadcastf32x2",	{ XM, EXq }, PREFIX_DATA },
230    { "vbroadcastsd",	{ XM, EXq }, PREFIX_DATA },
231  },
232  /* EVEX_W_0F381A_M_0_L_n */
233  {
234    { "vbroadcastf32x4",	{ XM, EXxmm }, PREFIX_DATA },
235    { "vbroadcastf64x2",	{ XM, EXxmm }, PREFIX_DATA },
236  },
237  /* EVEX_W_0F381B_M_0_L_2 */
238  {
239    { "vbroadcastf32x8",	{ XM, EXymm }, PREFIX_DATA },
240    { "vbroadcastf64x4",	{ XM, EXymm }, PREFIX_DATA },
241  },
242  /* EVEX_W_0F381E */
243  {
244    { "vpabsd",	{ XM, EXx }, PREFIX_DATA },
245  },
246  /* EVEX_W_0F381F */
247  {
248    { Bad_Opcode },
249    { "vpabsq",	{ XM, EXx }, PREFIX_DATA },
250  },
251  /* EVEX_W_0F3820_P_1 */
252  {
253    { "vpmovswb",	{ EXxmmq, XM }, 0 },
254  },
255  /* EVEX_W_0F3821_P_1 */
256  {
257    { "vpmovsdb",	{ EXxmmqd, XM }, 0 },
258  },
259  /* EVEX_W_0F3822_P_1 */
260  {
261    { "vpmovsqb",	{ EXxmmdw, XM }, 0 },
262  },
263  /* EVEX_W_0F3823_P_1 */
264  {
265    { "vpmovsdw",	{ EXxmmq, XM }, 0 },
266  },
267  /* EVEX_W_0F3824_P_1 */
268  {
269    { "vpmovsqw",	{ EXxmmqd, XM }, 0 },
270  },
271  /* EVEX_W_0F3825_P_1 */
272  {
273    { "vpmovsqd",	{ EXxmmq, XM }, 0 },
274  },
275  /* EVEX_W_0F3825_P_2 */
276  {
277    { "vpmovsxdq",	{ XM, EXxmmq }, 0 },
278  },
279  /* EVEX_W_0F3828_P_2 */
280  {
281    { Bad_Opcode },
282    { "vpmuldq",	{ XM, Vex, EXx }, 0 },
283  },
284  /* EVEX_W_0F3829_P_2 */
285  {
286    { Bad_Opcode },
287    { "vpcmpeqq",	{ MaskG, Vex, EXx }, 0 },
288  },
289  /* EVEX_W_0F382A_P_1 */
290  {
291    { Bad_Opcode },
292    { MOD_TABLE (MOD_EVEX_0F382A_P_1_W_1) },
293  },
294  /* EVEX_W_0F382A_P_2 */
295  {
296    { "vmovntdqa",	{ XM, EXEvexXNoBcst }, 0 },
297  },
298  /* EVEX_W_0F382B */
299  {
300    { "vpackusdw",	{ XM, Vex, EXx }, PREFIX_DATA },
301  },
302  /* EVEX_W_0F3830_P_1 */
303  {
304    { "vpmovwb",	{ EXxmmq, XM }, 0 },
305  },
306  /* EVEX_W_0F3831_P_1 */
307  {
308    { "vpmovdb",	{ EXxmmqd, XM }, 0 },
309  },
310  /* EVEX_W_0F3832_P_1 */
311  {
312    { "vpmovqb",	{ EXxmmdw, XM }, 0 },
313  },
314  /* EVEX_W_0F3833_P_1 */
315  {
316    { "vpmovdw",	{ EXxmmq, XM }, 0 },
317  },
318  /* EVEX_W_0F3834_P_1 */
319  {
320    { "vpmovqw",	{ EXxmmqd, XM }, 0 },
321  },
322  /* EVEX_W_0F3835_P_1 */
323  {
324    { "vpmovqd",	{ EXxmmq, XM }, 0 },
325  },
326  /* EVEX_W_0F3835_P_2 */
327  {
328    { "vpmovzxdq",	{ XM, EXxmmq }, 0 },
329  },
330  /* EVEX_W_0F3837 */
331  {
332    { Bad_Opcode },
333    { "vpcmpgtq",	{ MaskG, Vex, EXx }, PREFIX_DATA },
334  },
335  /* EVEX_W_0F383A_P_1 */
336  {
337    { MOD_TABLE (MOD_EVEX_0F383A_P_1_W_0) },
338  },
339  /* EVEX_W_0F3859 */
340  {
341    { "vbroadcasti32x2",	{ XM, EXq }, PREFIX_DATA },
342    { "vpbroadcastq",	{ XM, EXq }, PREFIX_DATA },
343  },
344  /* EVEX_W_0F385A_M_0_L_n */
345  {
346    { "vbroadcasti32x4",	{ XM, EXxmm }, PREFIX_DATA },
347    { "vbroadcasti64x2",	{ XM, EXxmm }, PREFIX_DATA },
348  },
349  /* EVEX_W_0F385B_M_0_L_2 */
350  {
351    { "vbroadcasti32x8",	{ XM, EXymm }, PREFIX_DATA },
352    { "vbroadcasti64x4",	{ XM, EXymm }, PREFIX_DATA },
353  },
354  /* EVEX_W_0F3870 */
355  {
356    { Bad_Opcode },
357    { "vpshldvw",  { XM, Vex, EXx }, PREFIX_DATA },
358  },
359  /* EVEX_W_0F3872_P_2 */
360  {
361    { Bad_Opcode },
362    { "vpshrdvw",  { XM, Vex, EXx }, 0 },
363  },
364  /* EVEX_W_0F387A */
365  {
366    { MOD_TABLE (MOD_EVEX_0F387A_W_0) },
367  },
368  /* EVEX_W_0F387B */
369  {
370    { MOD_TABLE (MOD_EVEX_0F387B_W_0) },
371  },
372  /* EVEX_W_0F3883 */
373  {
374    { Bad_Opcode },
375    { "vpmultishiftqb",	{ XM, Vex, EXx }, PREFIX_DATA },
376  },
377  /* EVEX_W_0F3A18_L_n */
378  {
379    { "vinsertf32x4",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
380    { "vinsertf64x2",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
381  },
382  /* EVEX_W_0F3A19_L_n */
383  {
384    { "vextractf32x4",	{ EXxmm, XM, Ib }, PREFIX_DATA },
385    { "vextractf64x2",	{ EXxmm, XM, Ib }, PREFIX_DATA },
386  },
387  /* EVEX_W_0F3A1A_L_2 */
388  {
389    { "vinsertf32x8",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
390    { "vinsertf64x4",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
391  },
392  /* EVEX_W_0F3A1B_L_2 */
393  {
394    { "vextractf32x8",	{ EXymm, XM, Ib }, PREFIX_DATA },
395    { "vextractf64x4",	{ EXymm, XM, Ib }, PREFIX_DATA },
396  },
397  /* EVEX_W_0F3A21 */
398  {
399    { VEX_LEN_TABLE (VEX_LEN_0F3A21) },
400  },
401  /* EVEX_W_0F3A23_L_n */
402  {
403    { "vshuff32x4",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
404    { "vshuff64x2",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
405  },
406  /* EVEX_W_0F3A38_L_n */
407  {
408    { "vinserti32x4",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
409    { "vinserti64x2",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
410  },
411  /* EVEX_W_0F3A39_L_n */
412  {
413    { "vextracti32x4",	{ EXxmm, XM, Ib }, PREFIX_DATA },
414    { "vextracti64x2",	{ EXxmm, XM, Ib }, PREFIX_DATA },
415  },
416  /* EVEX_W_0F3A3A_L_2 */
417  {
418    { "vinserti32x8",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
419    { "vinserti64x4",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
420  },
421  /* EVEX_W_0F3A3B_L_2 */
422  {
423    { "vextracti32x8",	{ EXymm, XM, Ib }, PREFIX_DATA },
424    { "vextracti64x4",	{ EXymm, XM, Ib }, PREFIX_DATA },
425  },
426  /* EVEX_W_0F3A42 */
427  {
428    { "vdbpsadbw",	{ XM, Vex, EXx, Ib }, 0 },
429  },
430  /* EVEX_W_0F3A43_L_n */
431  {
432    { "vshufi32x4",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
433    { "vshufi64x2",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
434  },
435  /* EVEX_W_0F3A70 */
436  {
437    { Bad_Opcode },
438    { "vpshldw",   { XM, Vex, EXx, Ib }, 0 },
439  },
440  /* EVEX_W_0F3A72 */
441  {
442    { Bad_Opcode },
443    { "vpshrdw",   { XM, Vex, EXx, Ib }, 0 },
444  },
445  /* EVEX_W_MAP5_5B_P_0 */
446  {
447    { "vcvtdq2ph%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
448    { "vcvtqq2ph%XZ",	{ XMM, EXx, EXxEVexR }, 0 },
449  },
450  /* EVEX_W_MAP5_7A_P_3 */
451  {
452    { "vcvtudq2ph%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
453    { "vcvtuqq2ph%XZ",	{ XMM, EXx, EXxEVexR }, 0 },
454  },
455