]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/X86/X86InstrTablesInfo.h
Import libcxxrt master 8a853717e61d5d55cbdf74d9d0a7545da5d5ff92.
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / X86 / X86InstrTablesInfo.h
1 //===-- X86InstrTablesInfo.h - X86 Instruction Tables -----------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file contains related X86 Instruction Information Tables.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef LLVM_LIB_TARGET_X86_X86INSTRTABLESINFO_H
15 #define LLVM_LIB_TARGET_X86_X86INSTRTABLESINFO_H
16
17 using namespace llvm;
18
19 struct X86EvexToVexCompressTableEntry {
20   uint16_t EvexOpcode;
21   uint16_t VexOpcode;
22 };
23
24
25
26 // X86 EVEX encoded instructions that have a VEX 128 encoding
27 // (table format: <EVEX opcode, VEX-128 opcode>).
28 static const X86EvexToVexCompressTableEntry X86EvexToVex128CompressTable[] = {
29   // EVEX scalar with corresponding VEX.
30   { X86::Int_VCOMISDZrm         ,  X86::Int_VCOMISDrm            },
31   { X86::Int_VCOMISDZrr         ,  X86::Int_VCOMISDrr            },
32   { X86::Int_VCOMISSZrm         ,  X86::Int_VCOMISSrm            },
33   { X86::Int_VCOMISSZrr         ,  X86::Int_VCOMISSrr            },
34   { X86::Int_VUCOMISDZrm        ,  X86::Int_VUCOMISDrm           },
35   { X86::Int_VUCOMISDZrr        ,  X86::Int_VUCOMISDrr           },
36   { X86::Int_VUCOMISSZrm        ,  X86::Int_VUCOMISSrm           },
37   { X86::Int_VUCOMISSZrr        ,  X86::Int_VUCOMISSrr           },
38   { X86::VADDSDZrm              ,  X86::VADDSDrm                 },
39   { X86::VADDSDZrm_Int          ,  X86::VADDSDrm_Int             },
40   { X86::VADDSDZrr              ,  X86::VADDSDrr                 },
41   { X86::VADDSDZrr_Int          ,  X86::VADDSDrr_Int             },
42   { X86::VADDSSZrm              ,  X86::VADDSSrm                 },
43   { X86::VADDSSZrm_Int          ,  X86::VADDSSrm_Int             },
44   { X86::VADDSSZrr              ,  X86::VADDSSrr                 },
45   { X86::VADDSSZrr_Int          ,  X86::VADDSSrr_Int             },
46   { X86::VCOMISDZrm             ,  X86::VCOMISDrm                },
47   { X86::VCOMISDZrr             ,  X86::VCOMISDrr                },
48   { X86::VCOMISSZrm             ,  X86::VCOMISSrm                },
49   { X86::VCOMISSZrr             ,  X86::VCOMISSrr                },
50   { X86::VCVTSD2SI64Zrm         ,  X86::VCVTSD2SI64rm            },
51   { X86::VCVTSD2SI64Zrr         ,  X86::VCVTSD2SI64rr            },
52   { X86::VCVTSD2SIZrm           ,  X86::VCVTSD2SIrm              },
53   { X86::VCVTSD2SIZrr           ,  X86::VCVTSD2SIrr              },
54   { X86::VCVTSD2SSZrm           ,  X86::VCVTSD2SSrm              },
55   { X86::VCVTSD2SSZrr           ,  X86::VCVTSD2SSrr              },
56   { X86::VCVTSI2SDZrm           ,  X86::VCVTSI2SDrm              },
57   { X86::VCVTSI2SDZrm_Int       ,  X86::Int_VCVTSI2SDrm          },
58   { X86::VCVTSI2SDZrr           ,  X86::VCVTSI2SDrr              },
59   { X86::VCVTSI2SDZrr_Int       ,  X86::Int_VCVTSI2SDrr          },
60   { X86::VCVTSI2SSZrm           ,  X86::VCVTSI2SSrm              },
61   { X86::VCVTSI2SSZrm_Int       ,  X86::Int_VCVTSI2SSrm          },
62   { X86::VCVTSI2SSZrr           ,  X86::VCVTSI2SSrr              },
63   { X86::VCVTSI2SSZrr_Int       ,  X86::Int_VCVTSI2SSrr          },
64   { X86::VCVTSS2SDZrm           ,  X86::VCVTSS2SDrm              },
65   { X86::VCVTSS2SDZrr           ,  X86::VCVTSS2SDrr              },
66   { X86::VCVTSS2SI64Zrm         ,  X86::VCVTSS2SI64rm            },
67   { X86::VCVTSS2SI64Zrr         ,  X86::VCVTSS2SI64rr            },
68   { X86::VCVTSS2SIZrm           ,  X86::VCVTSS2SIrm              },
69   { X86::VCVTSS2SIZrr           ,  X86::VCVTSS2SIrr              },
70   { X86::VCVTTSD2SI64Zrm        ,  X86::VCVTTSD2SI64rm           },
71   { X86::VCVTTSD2SI64Zrm_Int    ,  X86::Int_VCVTTSD2SI64rm       },
72   { X86::VCVTTSD2SI64Zrr        ,  X86::VCVTTSD2SI64rr           },
73   { X86::VCVTTSD2SI64Zrr_Int    ,  X86::Int_VCVTTSD2SI64rr       },
74   { X86::VCVTTSD2SIZrm          ,  X86::VCVTTSD2SIrm             },
75   { X86::VCVTTSD2SIZrm_Int      ,  X86::Int_VCVTTSD2SIrm         },
76   { X86::VCVTTSD2SIZrr          ,  X86::VCVTTSD2SIrr             },
77   { X86::VCVTTSD2SIZrr_Int      ,  X86::Int_VCVTTSD2SIrr         },
78   { X86::VCVTTSS2SI64Zrm        ,  X86::VCVTTSS2SI64rm           },
79   { X86::VCVTTSS2SI64Zrm_Int    ,  X86::Int_VCVTTSS2SI64rm       },
80   { X86::VCVTTSS2SI64Zrr        ,  X86::VCVTTSS2SI64rr           },
81   { X86::VCVTTSS2SI64Zrr_Int    ,  X86::Int_VCVTTSS2SI64rr       },
82   { X86::VCVTTSS2SIZrm          ,  X86::VCVTTSS2SIrm             },
83   { X86::VCVTTSS2SIZrm_Int      ,  X86::Int_VCVTTSS2SIrm         },
84   { X86::VCVTTSS2SIZrr          ,  X86::VCVTTSS2SIrr             },
85   { X86::VCVTTSS2SIZrr_Int      ,  X86::Int_VCVTTSS2SIrr         },
86   { X86::VDIVSDZrm              ,  X86::VDIVSDrm                 },
87   { X86::VDIVSDZrm_Int          ,  X86::VDIVSDrm_Int             },
88   { X86::VDIVSDZrr              ,  X86::VDIVSDrr                 },
89   { X86::VDIVSDZrr_Int          ,  X86::VDIVSDrr_Int             },
90   { X86::VDIVSSZrm              ,  X86::VDIVSSrm                 },
91   { X86::VDIVSSZrm_Int          ,  X86::VDIVSSrm_Int             },
92   { X86::VDIVSSZrr              ,  X86::VDIVSSrr                 },
93   { X86::VDIVSSZrr_Int          ,  X86::VDIVSSrr_Int             },
94   { X86::VFMADD132SDZm          ,  X86::VFMADD132SDm             },
95   { X86::VFMADD132SDZm_Int      ,  X86::VFMADD132SDm_Int         },
96   { X86::VFMADD132SDZr          ,  X86::VFMADD132SDr             },
97   { X86::VFMADD132SDZr_Int      ,  X86::VFMADD132SDr_Int         },
98   { X86::VFMADD132SSZm          ,  X86::VFMADD132SSm             },
99   { X86::VFMADD132SSZm_Int      ,  X86::VFMADD132SSm_Int         },
100   { X86::VFMADD132SSZr          ,  X86::VFMADD132SSr             },
101   { X86::VFMADD132SSZr_Int      ,  X86::VFMADD132SSr_Int         },
102   { X86::VFMADD213SDZm          ,  X86::VFMADD213SDm             },
103   { X86::VFMADD213SDZm_Int      ,  X86::VFMADD213SDm_Int         },
104   { X86::VFMADD213SDZr          ,  X86::VFMADD213SDr             },
105   { X86::VFMADD213SDZr_Int      ,  X86::VFMADD213SDr_Int         },
106   { X86::VFMADD213SSZm          ,  X86::VFMADD213SSm             },
107   { X86::VFMADD213SSZm_Int      ,  X86::VFMADD213SSm_Int         },
108   { X86::VFMADD213SSZr          ,  X86::VFMADD213SSr             },
109   { X86::VFMADD213SSZr_Int      ,  X86::VFMADD213SSr_Int         },
110   { X86::VFMADD231SDZm          ,  X86::VFMADD231SDm             },
111   { X86::VFMADD231SDZm_Int      ,  X86::VFMADD231SDm_Int         },
112   { X86::VFMADD231SDZr          ,  X86::VFMADD231SDr             },
113   { X86::VFMADD231SDZr_Int      ,  X86::VFMADD231SDr_Int         },
114   { X86::VFMADD231SSZm          ,  X86::VFMADD231SSm             },
115   { X86::VFMADD231SSZm_Int      ,  X86::VFMADD231SSm_Int         },
116   { X86::VFMADD231SSZr          ,  X86::VFMADD231SSr             },
117   { X86::VFMADD231SSZr_Int      ,  X86::VFMADD231SSr_Int         },
118   { X86::VFMSUB132SDZm          ,  X86::VFMSUB132SDm             },
119   { X86::VFMSUB132SDZm_Int      ,  X86::VFMSUB132SDm_Int         },
120   { X86::VFMSUB132SDZr          ,  X86::VFMSUB132SDr             },
121   { X86::VFMSUB132SDZr_Int      ,  X86::VFMSUB132SDr_Int         },
122   { X86::VFMSUB132SSZm          ,  X86::VFMSUB132SSm             },
123   { X86::VFMSUB132SSZm_Int      ,  X86::VFMSUB132SSm_Int         },
124   { X86::VFMSUB132SSZr          ,  X86::VFMSUB132SSr             },
125   { X86::VFMSUB132SSZr_Int      ,  X86::VFMSUB132SSr_Int         },
126   { X86::VFMSUB213SDZm          ,  X86::VFMSUB213SDm             },
127   { X86::VFMSUB213SDZm_Int      ,  X86::VFMSUB213SDm_Int         },
128   { X86::VFMSUB213SDZr          ,  X86::VFMSUB213SDr             },
129   { X86::VFMSUB213SDZr_Int      ,  X86::VFMSUB213SDr_Int         },
130   { X86::VFMSUB213SSZm          ,  X86::VFMSUB213SSm             },
131   { X86::VFMSUB213SSZm_Int      ,  X86::VFMSUB213SSm_Int         },
132   { X86::VFMSUB213SSZr          ,  X86::VFMSUB213SSr             },
133   { X86::VFMSUB213SSZr_Int      ,  X86::VFMSUB213SSr_Int         },
134   { X86::VFMSUB231SDZm          ,  X86::VFMSUB231SDm             },
135   { X86::VFMSUB231SDZm_Int      ,  X86::VFMSUB231SDm_Int         },
136   { X86::VFMSUB231SDZr          ,  X86::VFMSUB231SDr             },
137   { X86::VFMSUB231SDZr_Int      ,  X86::VFMSUB231SDr_Int         },
138   { X86::VFMSUB231SSZm          ,  X86::VFMSUB231SSm             },
139   { X86::VFMSUB231SSZm_Int      ,  X86::VFMSUB231SSm_Int         },
140   { X86::VFMSUB231SSZr          ,  X86::VFMSUB231SSr             },
141   { X86::VFMSUB231SSZr_Int      ,  X86::VFMSUB231SSr_Int         },
142   { X86::VFNMADD132SDZm         ,  X86::VFNMADD132SDm            },
143   { X86::VFNMADD132SDZm_Int     ,  X86::VFNMADD132SDm_Int        },
144   { X86::VFNMADD132SDZr         ,  X86::VFNMADD132SDr            },
145   { X86::VFNMADD132SDZr_Int     ,  X86::VFNMADD132SDr_Int        },
146   { X86::VFNMADD132SSZm         ,  X86::VFNMADD132SSm            },
147   { X86::VFNMADD132SSZm_Int     ,  X86::VFNMADD132SSm_Int        },
148   { X86::VFNMADD132SSZr         ,  X86::VFNMADD132SSr            },
149   { X86::VFNMADD132SSZr_Int     ,  X86::VFNMADD132SSr_Int        },
150   { X86::VFNMADD213SDZm         ,  X86::VFNMADD213SDm            },
151   { X86::VFNMADD213SDZm_Int     ,  X86::VFNMADD213SDm_Int        },
152   { X86::VFNMADD213SDZr         ,  X86::VFNMADD213SDr            },
153   { X86::VFNMADD213SDZr_Int     ,  X86::VFNMADD213SDr_Int        },
154   { X86::VFNMADD213SSZm         ,  X86::VFNMADD213SSm            },
155   { X86::VFNMADD213SSZm_Int     ,  X86::VFNMADD213SSm_Int        },
156   { X86::VFNMADD213SSZr         ,  X86::VFNMADD213SSr            },
157   { X86::VFNMADD213SSZr_Int     ,  X86::VFNMADD213SSr_Int        },
158   { X86::VFNMADD231SDZm         ,  X86::VFNMADD231SDm            },
159   { X86::VFNMADD231SDZm_Int     ,  X86::VFNMADD231SDm_Int        },
160   { X86::VFNMADD231SDZr         ,  X86::VFNMADD231SDr            },
161   { X86::VFNMADD231SDZr_Int     ,  X86::VFNMADD231SDr_Int        },
162   { X86::VFNMADD231SSZm         ,  X86::VFNMADD231SSm            },
163   { X86::VFNMADD231SSZm_Int     ,  X86::VFNMADD231SSm_Int        },
164   { X86::VFNMADD231SSZr         ,  X86::VFNMADD231SSr            },
165   { X86::VFNMADD231SSZr_Int     ,  X86::VFNMADD231SSr_Int        },
166   { X86::VFNMSUB132SDZm         ,  X86::VFNMSUB132SDm            },
167   { X86::VFNMSUB132SDZm_Int     ,  X86::VFNMSUB132SDm_Int        },
168   { X86::VFNMSUB132SDZr         ,  X86::VFNMSUB132SDr            },
169   { X86::VFNMSUB132SDZr_Int     ,  X86::VFNMSUB132SDr_Int        },
170   { X86::VFNMSUB132SSZm         ,  X86::VFNMSUB132SSm            },
171   { X86::VFNMSUB132SSZm_Int     ,  X86::VFNMSUB132SSm_Int        },
172   { X86::VFNMSUB132SSZr         ,  X86::VFNMSUB132SSr            },
173   { X86::VFNMSUB132SSZr_Int     ,  X86::VFNMSUB132SSr_Int        },
174   { X86::VFNMSUB213SDZm         ,  X86::VFNMSUB213SDm            },
175   { X86::VFNMSUB213SDZm_Int     ,  X86::VFNMSUB213SDm_Int        },
176   { X86::VFNMSUB213SDZr         ,  X86::VFNMSUB213SDr            },
177   { X86::VFNMSUB213SDZr_Int     ,  X86::VFNMSUB213SDr_Int        },
178   { X86::VFNMSUB213SSZm         ,  X86::VFNMSUB213SSm            },
179   { X86::VFNMSUB213SSZm_Int     ,  X86::VFNMSUB213SSm_Int        },
180   { X86::VFNMSUB213SSZr         ,  X86::VFNMSUB213SSr            },
181   { X86::VFNMSUB213SSZr_Int     ,  X86::VFNMSUB213SSr_Int        },
182   { X86::VFNMSUB231SDZm         ,  X86::VFNMSUB231SDm            },
183   { X86::VFNMSUB231SDZm_Int     ,  X86::VFNMSUB231SDm_Int        },
184   { X86::VFNMSUB231SDZr         ,  X86::VFNMSUB231SDr            },
185   { X86::VFNMSUB231SDZr_Int     ,  X86::VFNMSUB231SDr_Int        },
186   { X86::VFNMSUB231SSZm         ,  X86::VFNMSUB231SSm            },
187   { X86::VFNMSUB231SSZm_Int     ,  X86::VFNMSUB231SSm_Int        },
188   { X86::VFNMSUB231SSZr         ,  X86::VFNMSUB231SSr            },
189   { X86::VFNMSUB231SSZr_Int     ,  X86::VFNMSUB231SSr_Int        },
190   { X86::VMAXCSDZrm             ,  X86::VMAXCSDrm                },
191   { X86::VMAXCSDZrr             ,  X86::VMAXCSDrr                },
192   { X86::VMAXCSSZrm             ,  X86::VMAXCSSrm                },
193   { X86::VMAXCSSZrr             ,  X86::VMAXCSSrr                },
194   { X86::VMAXSDZrm              ,  X86::VMAXSDrm                 },
195   { X86::VMAXSDZrm_Int          ,  X86::VMAXSDrm_Int             },
196   { X86::VMAXSDZrr              ,  X86::VMAXSDrr                 },
197   { X86::VMAXSDZrr_Int          ,  X86::VMAXSDrr_Int             },
198   { X86::VMAXSSZrm              ,  X86::VMAXSSrm                 },
199   { X86::VMAXSSZrm_Int          ,  X86::VMAXSSrm_Int             },
200   { X86::VMAXSSZrr              ,  X86::VMAXSSrr                 },
201   { X86::VMAXSSZrr_Int          ,  X86::VMAXSSrr_Int             },
202   { X86::VMINCSDZrm             ,  X86::VMINCSDrm                },
203   { X86::VMINCSDZrr             ,  X86::VMINCSDrr                },
204   { X86::VMINCSSZrm             ,  X86::VMINCSSrm                },
205   { X86::VMINCSSZrr             ,  X86::VMINCSSrr                },
206   { X86::VMINSDZrm              ,  X86::VMINSDrm                 },
207   { X86::VMINSDZrm_Int          ,  X86::VMINSDrm_Int             },
208   { X86::VMINSDZrr              ,  X86::VMINSDrr                 },
209   { X86::VMINSDZrr_Int          ,  X86::VMINSDrr_Int             },
210   { X86::VMINSSZrm              ,  X86::VMINSSrm                 },
211   { X86::VMINSSZrm_Int          ,  X86::VMINSSrm_Int             },
212   { X86::VMINSSZrr              ,  X86::VMINSSrr                 },
213   { X86::VMINSSZrr_Int          ,  X86::VMINSSrr_Int             },
214   { X86::VMOV64toSDZrr          ,  X86::VMOV64toSDrr             },
215   { X86::VMOVDI2SSZrm           ,  X86::VMOVDI2SSrm              },
216   { X86::VMOVDI2SSZrr           ,  X86::VMOVDI2SSrr              },
217   { X86::VMOVSDZmr              ,  X86::VMOVSDmr                 },
218   { X86::VMOVSDZrm              ,  X86::VMOVSDrm                 },
219   { X86::VMOVSDZrr              ,  X86::VMOVSDrr                 },
220   { X86::VMOVSSZmr              ,  X86::VMOVSSmr                 },
221   { X86::VMOVSSZrm              ,  X86::VMOVSSrm                 },
222   { X86::VMOVSSZrr              ,  X86::VMOVSSrr                 },
223   { X86::VMOVSSZrr_REV          ,  X86::VMOVSSrr_REV             },
224   { X86::VMULSDZrm              ,  X86::VMULSDrm                 },
225   { X86::VMULSDZrm_Int          ,  X86::VMULSDrm_Int             },
226   { X86::VMULSDZrr              ,  X86::VMULSDrr                 },
227   { X86::VMULSDZrr_Int          ,  X86::VMULSDrr_Int             },
228   { X86::VMULSSZrm              ,  X86::VMULSSrm                 },
229   { X86::VMULSSZrm_Int          ,  X86::VMULSSrm_Int             },
230   { X86::VMULSSZrr              ,  X86::VMULSSrr                 },
231   { X86::VMULSSZrr_Int          ,  X86::VMULSSrr_Int             },
232   { X86::VSQRTSDZm              ,  X86::VSQRTSDm                 },
233   { X86::VSQRTSDZm_Int          ,  X86::VSQRTSDm_Int             },
234   { X86::VSQRTSDZr              ,  X86::VSQRTSDr                 },
235   { X86::VSQRTSDZr_Int          ,  X86::VSQRTSDr_Int             },
236   { X86::VSQRTSSZm              ,  X86::VSQRTSSm                 },
237   { X86::VSQRTSSZm_Int          ,  X86::VSQRTSSm_Int             },
238   { X86::VSQRTSSZr              ,  X86::VSQRTSSr                 },
239   { X86::VSQRTSSZr_Int          ,  X86::VSQRTSSr_Int             },
240   { X86::VSUBSDZrm              ,  X86::VSUBSDrm                 },
241   { X86::VSUBSDZrm_Int          ,  X86::VSUBSDrm_Int             },
242   { X86::VSUBSDZrr              ,  X86::VSUBSDrr                 },
243   { X86::VSUBSDZrr_Int          ,  X86::VSUBSDrr_Int             },
244   { X86::VSUBSSZrm              ,  X86::VSUBSSrm                 },
245   { X86::VSUBSSZrm_Int          ,  X86::VSUBSSrm_Int             },
246   { X86::VSUBSSZrr              ,  X86::VSUBSSrr                 },
247   { X86::VSUBSSZrr_Int          ,  X86::VSUBSSrr_Int             },
248   { X86::VUCOMISDZrm            ,  X86::VUCOMISDrm               },
249   { X86::VUCOMISDZrr            ,  X86::VUCOMISDrr               },
250   { X86::VUCOMISSZrm            ,  X86::VUCOMISSrm               },
251   { X86::VUCOMISSZrr            ,  X86::VUCOMISSrr               },
252
253   { X86::VMOV64toPQIZrr         ,   X86::VMOV64toPQIrr           },
254   { X86::VMOV64toSDZrr          ,   X86::VMOV64toSDrr            },
255   { X86::VMOVDI2PDIZrm          ,   X86::VMOVDI2PDIrm            },
256   { X86::VMOVDI2PDIZrr          ,   X86::VMOVDI2PDIrr            },
257   { X86::VMOVLHPSZrr            ,   X86::VMOVLHPSrr              },
258   { X86::VMOVHLPSZrr            ,   X86::VMOVHLPSrr              },
259   { X86::VMOVPDI2DIZmr          ,   X86::VMOVPDI2DImr            },
260   { X86::VMOVPDI2DIZrr          ,   X86::VMOVPDI2DIrr            },
261   { X86::VMOVPQI2QIZmr          ,   X86::VMOVPQI2QImr            },
262   { X86::VMOVPQIto64Zrr         ,   X86::VMOVPQIto64rr           },
263   { X86::VMOVQI2PQIZrm          ,   X86::VMOVQI2PQIrm            },
264   { X86::VMOVZPQILo2PQIZrr      ,   X86::VMOVZPQILo2PQIrr        },
265
266   { X86::VPEXTRBZmr             ,   X86::VPEXTRBmr               },
267   { X86::VPEXTRBZrr             ,   X86::VPEXTRBrr               },
268   { X86::VPEXTRDZmr             ,   X86::VPEXTRDmr               },
269   { X86::VPEXTRDZrr             ,   X86::VPEXTRDrr               },
270   { X86::VPEXTRQZmr             ,   X86::VPEXTRQmr               },
271   { X86::VPEXTRQZrr             ,   X86::VPEXTRQrr               },
272   { X86::VPEXTRWZmr             ,   X86::VPEXTRWmr               },
273   { X86::VPEXTRWZrr             ,   X86::VPEXTRWri               },
274
275   { X86::VPINSRBZrm             ,   X86::VPINSRBrm               },
276   { X86::VPINSRBZrr             ,   X86::VPINSRBrr               },
277   { X86::VPINSRDZrm             ,   X86::VPINSRDrm               },
278   { X86::VPINSRDZrr             ,   X86::VPINSRDrr               },
279   { X86::VPINSRQZrm             ,   X86::VPINSRQrm               },
280   { X86::VPINSRQZrr             ,   X86::VPINSRQrr               },
281   { X86::VPINSRWZrm             ,   X86::VPINSRWrmi              },
282   { X86::VPINSRWZrr             ,   X86::VPINSRWrri              },
283
284   // EVEX 128 with corresponding VEX.
285   { X86::VADDPDZ128rm           ,    X86::VADDPDrm               },
286   { X86::VADDPDZ128rr           ,    X86::VADDPDrr               },
287   { X86::VADDPSZ128rm           ,    X86::VADDPSrm               },
288   { X86::VADDPSZ128rr           ,    X86::VADDPSrr               },
289   { X86::VANDNPDZ128rm          ,    X86::VANDNPDrm              },
290   { X86::VANDNPDZ128rr          ,    X86::VANDNPDrr              },
291   { X86::VANDNPSZ128rm          ,    X86::VANDNPSrm              },
292   { X86::VANDNPSZ128rr          ,    X86::VANDNPSrr              },
293   { X86::VANDPDZ128rm           ,    X86::VANDPDrm               },
294   { X86::VANDPDZ128rr           ,    X86::VANDPDrr               },
295   { X86::VANDPSZ128rm           ,    X86::VANDPSrm               },
296   { X86::VANDPSZ128rr           ,    X86::VANDPSrr               },
297   { X86::VBROADCASTSSZ128m      ,    X86::VBROADCASTSSrm         },
298   { X86::VBROADCASTSSZ128r      ,    X86::VBROADCASTSSrr         },
299   { X86::VBROADCASTSSZ128r_s    ,    X86::VBROADCASTSSrr         },
300   { X86::VCVTDQ2PDZ128rm        ,    X86::VCVTDQ2PDrm            },
301   { X86::VCVTDQ2PDZ128rr        ,    X86::VCVTDQ2PDrr            },
302   { X86::VCVTDQ2PSZ128rm        ,    X86::VCVTDQ2PSrm            },
303   { X86::VCVTDQ2PSZ128rr        ,    X86::VCVTDQ2PSrr            },
304   { X86::VCVTPD2DQZ128rm        ,    X86::VCVTPD2DQrm            },
305   { X86::VCVTPD2DQZ128rr        ,    X86::VCVTPD2DQrr            },
306   { X86::VCVTPD2PSZ128rm        ,    X86::VCVTPD2PSrm            },
307   { X86::VCVTPD2PSZ128rr        ,    X86::VCVTPD2PSrr            },
308   { X86::VCVTPH2PSZ128rm        ,    X86::VCVTPH2PSrm            },
309   { X86::VCVTPH2PSZ128rr        ,    X86::VCVTPH2PSrr            },
310   { X86::VCVTPS2DQZ128rm        ,    X86::VCVTPS2DQrm            },
311   { X86::VCVTPS2DQZ128rr        ,    X86::VCVTPS2DQrr            },
312   { X86::VCVTPS2PDZ128rm        ,    X86::VCVTPS2PDrm            },
313   { X86::VCVTPS2PDZ128rr        ,    X86::VCVTPS2PDrr            },
314   { X86::VCVTPS2PHZ128mr        ,    X86::VCVTPS2PHmr            },
315   { X86::VCVTPS2PHZ128rr        ,    X86::VCVTPS2PHrr            },
316   { X86::VCVTTPD2DQZ128rm       ,    X86::VCVTTPD2DQrm           },
317   { X86::VCVTTPD2DQZ128rr       ,    X86::VCVTTPD2DQrr           },
318   { X86::VCVTTPS2DQZ128rm       ,    X86::VCVTTPS2DQrm           },
319   { X86::VCVTTPS2DQZ128rr       ,    X86::VCVTTPS2DQrr           },
320   { X86::VDIVPDZ128rm           ,    X86::VDIVPDrm               },
321   { X86::VDIVPDZ128rr           ,    X86::VDIVPDrr               },
322   { X86::VDIVPSZ128rm           ,    X86::VDIVPSrm               },
323   { X86::VDIVPSZ128rr           ,    X86::VDIVPSrr               },
324   { X86::VFMADD132PDZ128m       ,    X86::VFMADD132PDm           },
325   { X86::VFMADD132PDZ128r       ,    X86::VFMADD132PDr           },
326   { X86::VFMADD132PSZ128m       ,    X86::VFMADD132PSm           },
327   { X86::VFMADD132PSZ128r       ,    X86::VFMADD132PSr           },
328   { X86::VFMADD213PDZ128m       ,    X86::VFMADD213PDm           },
329   { X86::VFMADD213PDZ128r       ,    X86::VFMADD213PDr           },
330   { X86::VFMADD213PSZ128m       ,    X86::VFMADD213PSm           },
331   { X86::VFMADD213PSZ128r       ,    X86::VFMADD213PSr           },
332   { X86::VFMADD231PDZ128m       ,    X86::VFMADD231PDm           },
333   { X86::VFMADD231PDZ128r       ,    X86::VFMADD231PDr           },
334   { X86::VFMADD231PSZ128m       ,    X86::VFMADD231PSm           },
335   { X86::VFMADD231PSZ128r       ,    X86::VFMADD231PSr           },
336   { X86::VFMADDSUB132PDZ128m    ,    X86::VFMADDSUB132PDm        },
337   { X86::VFMADDSUB132PDZ128r    ,    X86::VFMADDSUB132PDr        },
338   { X86::VFMADDSUB132PSZ128m    ,    X86::VFMADDSUB132PSm        },
339   { X86::VFMADDSUB132PSZ128r    ,    X86::VFMADDSUB132PSr        },
340   { X86::VFMADDSUB213PDZ128m    ,    X86::VFMADDSUB213PDm        },
341   { X86::VFMADDSUB213PDZ128r    ,    X86::VFMADDSUB213PDr        },
342   { X86::VFMADDSUB213PSZ128m    ,    X86::VFMADDSUB213PSm        },
343   { X86::VFMADDSUB213PSZ128r    ,    X86::VFMADDSUB213PSr        },
344   { X86::VFMADDSUB231PDZ128m    ,    X86::VFMADDSUB231PDm        },
345   { X86::VFMADDSUB231PDZ128r    ,    X86::VFMADDSUB231PDr        },
346   { X86::VFMADDSUB231PSZ128m    ,    X86::VFMADDSUB231PSm        },
347   { X86::VFMADDSUB231PSZ128r    ,    X86::VFMADDSUB231PSr        },
348   { X86::VFMSUB132PDZ128m       ,    X86::VFMSUB132PDm           },
349   { X86::VFMSUB132PDZ128r       ,    X86::VFMSUB132PDr           },
350   { X86::VFMSUB132PSZ128m       ,    X86::VFMSUB132PSm           },
351   { X86::VFMSUB132PSZ128r       ,    X86::VFMSUB132PSr           },
352   { X86::VFMSUB213PDZ128m       ,    X86::VFMSUB213PDm           },
353   { X86::VFMSUB213PDZ128r       ,    X86::VFMSUB213PDr           },
354   { X86::VFMSUB213PSZ128m       ,    X86::VFMSUB213PSm           },
355   { X86::VFMSUB213PSZ128r       ,    X86::VFMSUB213PSr           },
356   { X86::VFMSUB231PDZ128m       ,    X86::VFMSUB231PDm           },
357   { X86::VFMSUB231PDZ128r       ,    X86::VFMSUB231PDr           },
358   { X86::VFMSUB231PSZ128m       ,    X86::VFMSUB231PSm           },
359   { X86::VFMSUB231PSZ128r       ,    X86::VFMSUB231PSr           },
360   { X86::VFMSUBADD132PDZ128m    ,    X86::VFMSUBADD132PDm        },
361   { X86::VFMSUBADD132PDZ128r    ,    X86::VFMSUBADD132PDr        },
362   { X86::VFMSUBADD132PSZ128m    ,    X86::VFMSUBADD132PSm        },
363   { X86::VFMSUBADD132PSZ128r    ,    X86::VFMSUBADD132PSr        },
364   { X86::VFMSUBADD213PDZ128m    ,    X86::VFMSUBADD213PDm        },
365   { X86::VFMSUBADD213PDZ128r    ,    X86::VFMSUBADD213PDr        },
366   { X86::VFMSUBADD213PSZ128m    ,    X86::VFMSUBADD213PSm        },
367   { X86::VFMSUBADD213PSZ128r    ,    X86::VFMSUBADD213PSr        },
368   { X86::VFMSUBADD231PDZ128m    ,    X86::VFMSUBADD231PDm        },
369   { X86::VFMSUBADD231PDZ128r    ,    X86::VFMSUBADD231PDr        },
370   { X86::VFMSUBADD231PSZ128m    ,    X86::VFMSUBADD231PSm        },
371   { X86::VFMSUBADD231PSZ128r    ,    X86::VFMSUBADD231PSr        },
372   { X86::VFNMADD132PDZ128m      ,    X86::VFNMADD132PDm          },
373   { X86::VFNMADD132PDZ128r      ,    X86::VFNMADD132PDr          },
374   { X86::VFNMADD132PSZ128m      ,    X86::VFNMADD132PSm          },
375   { X86::VFNMADD132PSZ128r      ,    X86::VFNMADD132PSr          },
376   { X86::VFNMADD213PDZ128m      ,    X86::VFNMADD213PDm          },
377   { X86::VFNMADD213PDZ128r      ,    X86::VFNMADD213PDr          },
378   { X86::VFNMADD213PSZ128m      ,    X86::VFNMADD213PSm          },
379   { X86::VFNMADD213PSZ128r      ,    X86::VFNMADD213PSr          },
380   { X86::VFNMADD231PDZ128m      ,    X86::VFNMADD231PDm          },
381   { X86::VFNMADD231PDZ128r      ,    X86::VFNMADD231PDr          },
382   { X86::VFNMADD231PSZ128m      ,    X86::VFNMADD231PSm          },
383   { X86::VFNMADD231PSZ128r      ,    X86::VFNMADD231PSr          },
384   { X86::VFNMSUB132PDZ128m      ,    X86::VFNMSUB132PDm          },
385   { X86::VFNMSUB132PDZ128r      ,    X86::VFNMSUB132PDr          },
386   { X86::VFNMSUB132PSZ128m      ,    X86::VFNMSUB132PSm          },
387   { X86::VFNMSUB132PSZ128r      ,    X86::VFNMSUB132PSr          },
388   { X86::VFNMSUB213PDZ128m      ,    X86::VFNMSUB213PDm          },
389   { X86::VFNMSUB213PDZ128r      ,    X86::VFNMSUB213PDr          },
390   { X86::VFNMSUB213PSZ128m      ,    X86::VFNMSUB213PSm          },
391   { X86::VFNMSUB213PSZ128r      ,    X86::VFNMSUB213PSr          },
392   { X86::VFNMSUB231PDZ128m      ,    X86::VFNMSUB231PDm          },
393   { X86::VFNMSUB231PDZ128r      ,    X86::VFNMSUB231PDr          },
394   { X86::VFNMSUB231PSZ128m      ,    X86::VFNMSUB231PSm          },
395   { X86::VFNMSUB231PSZ128r      ,    X86::VFNMSUB231PSr          },
396   { X86::VMAXCPDZ128rm          ,    X86::VMAXCPDrm              },
397   { X86::VMAXCPDZ128rr          ,    X86::VMAXCPDrr              },
398   { X86::VMAXCPSZ128rm          ,    X86::VMAXCPSrm              },
399   { X86::VMAXCPSZ128rr          ,    X86::VMAXCPSrr              },
400   { X86::VMAXPDZ128rm           ,    X86::VMAXPDrm               },
401   { X86::VMAXPDZ128rr           ,    X86::VMAXPDrr               },
402   { X86::VMAXPSZ128rm           ,    X86::VMAXPSrm               },
403   { X86::VMAXPSZ128rr           ,    X86::VMAXPSrr               },
404   { X86::VMINCPDZ128rm          ,    X86::VMINCPDrm              },
405   { X86::VMINCPDZ128rr          ,    X86::VMINCPDrr              },
406   { X86::VMINCPSZ128rm          ,    X86::VMINCPSrm              },
407   { X86::VMINCPSZ128rr          ,    X86::VMINCPSrr              },
408   { X86::VMINPDZ128rm           ,    X86::VMINPDrm               },
409   { X86::VMINPDZ128rr           ,    X86::VMINPDrr               },
410   { X86::VMINPSZ128rm           ,    X86::VMINPSrm               },
411   { X86::VMINPSZ128rr           ,    X86::VMINPSrr               },
412   { X86::VMOVAPDZ128mr          ,    X86::VMOVAPDmr              },
413   { X86::VMOVAPDZ128rm          ,    X86::VMOVAPDrm              },
414   { X86::VMOVAPDZ128rr          ,    X86::VMOVAPDrr              },
415   { X86::VMOVAPDZ128rr_REV      ,    X86::VMOVAPDrr_REV          },
416   { X86::VMOVAPSZ128mr          ,    X86::VMOVAPSmr              },
417   { X86::VMOVAPSZ128rm          ,    X86::VMOVAPSrm              },
418   { X86::VMOVAPSZ128rr          ,    X86::VMOVAPSrr              },
419   { X86::VMOVAPSZ128rr_REV      ,    X86::VMOVAPSrr_REV          },
420   { X86::VMOVDDUPZ128rm         ,    X86::VMOVDDUPrm             },
421   { X86::VMOVDDUPZ128rr         ,    X86::VMOVDDUPrr             },
422   { X86::VMOVDQA32Z128mr        ,    X86::VMOVDQAmr              },
423   { X86::VMOVDQA32Z128rm        ,    X86::VMOVDQArm              },
424   { X86::VMOVDQA32Z128rr        ,    X86::VMOVDQArr              },
425   { X86::VMOVDQA32Z128rr_REV    ,    X86::VMOVDQArr_REV          },
426   { X86::VMOVDQA64Z128mr        ,    X86::VMOVDQAmr              },
427   { X86::VMOVDQA64Z128rm        ,    X86::VMOVDQArm              },
428   { X86::VMOVDQA64Z128rr        ,    X86::VMOVDQArr              },
429   { X86::VMOVDQA64Z128rr_REV    ,    X86::VMOVDQArr_REV          },
430   { X86::VMOVDQU16Z128mr        ,    X86::VMOVDQUmr              },
431   { X86::VMOVDQU16Z128rm        ,    X86::VMOVDQUrm              },
432   { X86::VMOVDQU16Z128rr        ,    X86::VMOVDQUrr              },
433   { X86::VMOVDQU16Z128rr_REV    ,    X86::VMOVDQUrr_REV          },
434   { X86::VMOVDQU32Z128mr        ,    X86::VMOVDQUmr              },
435   { X86::VMOVDQU32Z128rm        ,    X86::VMOVDQUrm              },
436   { X86::VMOVDQU32Z128rr        ,    X86::VMOVDQUrr              },
437   { X86::VMOVDQU32Z128rr_REV    ,    X86::VMOVDQUrr_REV          },
438   { X86::VMOVDQU64Z128mr        ,    X86::VMOVDQUmr              },
439   { X86::VMOVDQU64Z128rm        ,    X86::VMOVDQUrm              },
440   { X86::VMOVDQU64Z128rr        ,    X86::VMOVDQUrr              },
441   { X86::VMOVDQU64Z128rr_REV    ,    X86::VMOVDQUrr_REV          },
442   { X86::VMOVDQU8Z128mr         ,    X86::VMOVDQUmr              },
443   { X86::VMOVDQU8Z128rm         ,    X86::VMOVDQUrm              },
444   { X86::VMOVDQU8Z128rr         ,    X86::VMOVDQUrr              },
445   { X86::VMOVDQU8Z128rr_REV     ,    X86::VMOVDQUrr_REV          },
446   { X86::VMOVHPDZ128mr          ,    X86::VMOVHPDmr              },
447   { X86::VMOVHPDZ128rm          ,    X86::VMOVHPDrm              },
448   { X86::VMOVHPSZ128mr          ,    X86::VMOVHPSmr              },
449   { X86::VMOVHPSZ128rm          ,    X86::VMOVHPSrm              },
450   { X86::VMOVLPDZ128mr          ,    X86::VMOVLPDmr              },
451   { X86::VMOVLPDZ128rm          ,    X86::VMOVLPDrm              },
452   { X86::VMOVLPSZ128mr          ,    X86::VMOVLPSmr              },
453   { X86::VMOVLPSZ128rm          ,    X86::VMOVLPSrm              },
454   { X86::VMOVNTDQAZ128rm        ,    X86::VMOVNTDQArm            },
455   { X86::VMOVNTDQZ128mr         ,    X86::VMOVNTDQmr             },
456   { X86::VMOVNTPDZ128mr         ,    X86::VMOVNTPDmr             },
457   { X86::VMOVNTPSZ128mr         ,    X86::VMOVNTPSmr             },
458   { X86::VMOVSHDUPZ128rm        ,    X86::VMOVSHDUPrm            },
459   { X86::VMOVSHDUPZ128rr        ,    X86::VMOVSHDUPrr            },
460   { X86::VMOVSLDUPZ128rm        ,    X86::VMOVSLDUPrm            },
461   { X86::VMOVSLDUPZ128rr        ,    X86::VMOVSLDUPrr            },
462   { X86::VMOVUPDZ128mr          ,    X86::VMOVUPDmr              },
463   { X86::VMOVUPDZ128rm          ,    X86::VMOVUPDrm              },
464   { X86::VMOVUPDZ128rr          ,    X86::VMOVUPDrr              },
465   { X86::VMOVUPDZ128rr_REV      ,    X86::VMOVUPDrr_REV          },
466   { X86::VMOVUPSZ128mr          ,    X86::VMOVUPSmr              },
467   { X86::VMOVUPSZ128rm          ,    X86::VMOVUPSrm              },
468   { X86::VMOVUPSZ128rr          ,    X86::VMOVUPSrr              },
469   { X86::VMOVUPSZ128rr_REV      ,    X86::VMOVUPSrr_REV          },
470   { X86::VMULPDZ128rm           ,    X86::VMULPDrm               },
471   { X86::VMULPDZ128rr           ,    X86::VMULPDrr               },
472   { X86::VMULPSZ128rm           ,    X86::VMULPSrm               },
473   { X86::VMULPSZ128rr           ,    X86::VMULPSrr               },
474   { X86::VORPDZ128rm            ,    X86::VORPDrm                },
475   { X86::VORPDZ128rr            ,    X86::VORPDrr                },
476   { X86::VORPSZ128rm            ,    X86::VORPSrm                },
477   { X86::VORPSZ128rr            ,    X86::VORPSrr                },
478   { X86::VPABSBZ128rm           ,    X86::VPABSBrm               },
479   { X86::VPABSBZ128rr           ,    X86::VPABSBrr               },
480   { X86::VPABSDZ128rm           ,    X86::VPABSDrm               },
481   { X86::VPABSDZ128rr           ,    X86::VPABSDrr               },
482   { X86::VPABSWZ128rm           ,    X86::VPABSWrm               },
483   { X86::VPABSWZ128rr           ,    X86::VPABSWrr               },
484   { X86::VPACKSSDWZ128rm        ,    X86::VPACKSSDWrm            },
485   { X86::VPACKSSDWZ128rr        ,    X86::VPACKSSDWrr            },
486   { X86::VPACKSSWBZ128rm        ,    X86::VPACKSSWBrm            },
487   { X86::VPACKSSWBZ128rr        ,    X86::VPACKSSWBrr            },
488   { X86::VPACKUSDWZ128rm        ,    X86::VPACKUSDWrm            },
489   { X86::VPACKUSDWZ128rr        ,    X86::VPACKUSDWrr            },
490   { X86::VPACKUSWBZ128rm        ,    X86::VPACKUSWBrm            },
491   { X86::VPACKUSWBZ128rr        ,    X86::VPACKUSWBrr            },
492   { X86::VPADDBZ128rm           ,    X86::VPADDBrm               },
493   { X86::VPADDBZ128rr           ,    X86::VPADDBrr               },
494   { X86::VPADDDZ128rm           ,    X86::VPADDDrm               },
495   { X86::VPADDDZ128rr           ,    X86::VPADDDrr               },
496   { X86::VPADDQZ128rm           ,    X86::VPADDQrm               },
497   { X86::VPADDQZ128rr           ,    X86::VPADDQrr               },
498   { X86::VPADDSBZ128rm          ,    X86::VPADDSBrm              },
499   { X86::VPADDSBZ128rr          ,    X86::VPADDSBrr              },
500   { X86::VPADDSWZ128rm          ,    X86::VPADDSWrm              },
501   { X86::VPADDSWZ128rr          ,    X86::VPADDSWrr              },
502   { X86::VPADDUSBZ128rm         ,    X86::VPADDUSBrm             },
503   { X86::VPADDUSBZ128rr         ,    X86::VPADDUSBrr             },
504   { X86::VPADDUSWZ128rm         ,    X86::VPADDUSWrm             },
505   { X86::VPADDUSWZ128rr         ,    X86::VPADDUSWrr             },
506   { X86::VPADDWZ128rm           ,    X86::VPADDWrm               },
507   { X86::VPADDWZ128rr           ,    X86::VPADDWrr               },
508   { X86::VPALIGNRZ128rmi        ,    X86::VPALIGNRrmi            },
509   { X86::VPALIGNRZ128rri        ,    X86::VPALIGNRrri            },
510   { X86::VPANDDZ128rm           ,    X86::VPANDrm                },
511   { X86::VPANDDZ128rr           ,    X86::VPANDrr                },
512   { X86::VPANDQZ128rm           ,    X86::VPANDrm                },
513   { X86::VPANDQZ128rr           ,    X86::VPANDrr                },
514   { X86::VPAVGBZ128rm           ,    X86::VPAVGBrm               },
515   { X86::VPAVGBZ128rr           ,    X86::VPAVGBrr               },
516   { X86::VPAVGWZ128rm           ,    X86::VPAVGWrm               },
517   { X86::VPAVGWZ128rr           ,    X86::VPAVGWrr               },
518   { X86::VPBROADCASTBZ128m      ,    X86::VPBROADCASTBrm         },
519   { X86::VPBROADCASTBZ128r      ,    X86::VPBROADCASTBrr         },
520   { X86::VPBROADCASTDZ128m      ,    X86::VPBROADCASTDrm         },
521   { X86::VPBROADCASTDZ128r      ,    X86::VPBROADCASTDrr         },
522   { X86::VPBROADCASTQZ128m      ,    X86::VPBROADCASTQrm         },
523   { X86::VPBROADCASTQZ128r      ,    X86::VPBROADCASTQrr         },
524   { X86::VPBROADCASTWZ128m      ,    X86::VPBROADCASTWrm         },
525   { X86::VPBROADCASTWZ128r      ,    X86::VPBROADCASTWrr         },
526   { X86::VPERMILPDZ128mi        ,    X86::VPERMILPDmi            },
527   { X86::VPERMILPDZ128ri        ,    X86::VPERMILPDri            },
528   { X86::VPERMILPDZ128rm        ,    X86::VPERMILPDrm            },
529   { X86::VPERMILPDZ128rr        ,    X86::VPERMILPDrr            },
530   { X86::VPERMILPSZ128mi        ,    X86::VPERMILPSmi            },
531   { X86::VPERMILPSZ128ri        ,    X86::VPERMILPSri            },
532   { X86::VPERMILPSZ128rm        ,    X86::VPERMILPSrm            },
533   { X86::VPERMILPSZ128rr        ,    X86::VPERMILPSrr            },
534   { X86::VPMADDUBSWZ128rm       ,    X86::VPMADDUBSWrm           },
535   { X86::VPMADDUBSWZ128rr       ,    X86::VPMADDUBSWrr           },
536   { X86::VPMADDWDZ128rm         ,    X86::VPMADDWDrm             },
537   { X86::VPMADDWDZ128rr         ,    X86::VPMADDWDrr             },
538   { X86::VPMAXSBZ128rm          ,    X86::VPMAXSBrm              },
539   { X86::VPMAXSBZ128rr          ,    X86::VPMAXSBrr              },
540   { X86::VPMAXSDZ128rm          ,    X86::VPMAXSDrm              },
541   { X86::VPMAXSDZ128rr          ,    X86::VPMAXSDrr              },
542   { X86::VPMAXSWZ128rm          ,    X86::VPMAXSWrm              },
543   { X86::VPMAXSWZ128rr          ,    X86::VPMAXSWrr              },
544   { X86::VPMAXUBZ128rm          ,    X86::VPMAXUBrm              },
545   { X86::VPMAXUBZ128rr          ,    X86::VPMAXUBrr              },
546   { X86::VPMAXUDZ128rm          ,    X86::VPMAXUDrm              },
547   { X86::VPMAXUDZ128rr          ,    X86::VPMAXUDrr              },
548   { X86::VPMAXUWZ128rm          ,    X86::VPMAXUWrm              },
549   { X86::VPMAXUWZ128rr          ,    X86::VPMAXUWrr              },
550   { X86::VPMINSBZ128rm          ,    X86::VPMINSBrm              },
551   { X86::VPMINSBZ128rr          ,    X86::VPMINSBrr              },
552   { X86::VPMINSDZ128rm          ,    X86::VPMINSDrm              },
553   { X86::VPMINSDZ128rr          ,    X86::VPMINSDrr              },
554   { X86::VPMINSWZ128rm          ,    X86::VPMINSWrm              },
555   { X86::VPMINSWZ128rr          ,    X86::VPMINSWrr              },
556   { X86::VPMINUBZ128rm          ,    X86::VPMINUBrm              },
557   { X86::VPMINUBZ128rr          ,    X86::VPMINUBrr              },
558   { X86::VPMINUDZ128rm          ,    X86::VPMINUDrm              },
559   { X86::VPMINUDZ128rr          ,    X86::VPMINUDrr              },
560   { X86::VPMINUWZ128rm          ,    X86::VPMINUWrm              },
561   { X86::VPMINUWZ128rr          ,    X86::VPMINUWrr              },
562   { X86::VPMOVSXBDZ128rm        ,    X86::VPMOVSXBDrm            },
563   { X86::VPMOVSXBDZ128rr        ,    X86::VPMOVSXBDrr            },
564   { X86::VPMOVSXBQZ128rm        ,    X86::VPMOVSXBQrm            },
565   { X86::VPMOVSXBQZ128rr        ,    X86::VPMOVSXBQrr            },
566   { X86::VPMOVSXBWZ128rm        ,    X86::VPMOVSXBWrm            },
567   { X86::VPMOVSXBWZ128rr        ,    X86::VPMOVSXBWrr            },
568   { X86::VPMOVSXDQZ128rm        ,    X86::VPMOVSXDQrm            },
569   { X86::VPMOVSXDQZ128rr        ,    X86::VPMOVSXDQrr            },
570   { X86::VPMOVSXWDZ128rm        ,    X86::VPMOVSXWDrm            },
571   { X86::VPMOVSXWDZ128rr        ,    X86::VPMOVSXWDrr            },
572   { X86::VPMOVSXWQZ128rm        ,    X86::VPMOVSXWQrm            },
573   { X86::VPMOVSXWQZ128rr        ,    X86::VPMOVSXWQrr            },
574   { X86::VPMOVZXBDZ128rm        ,    X86::VPMOVZXBDrm            },
575   { X86::VPMOVZXBDZ128rr        ,    X86::VPMOVZXBDrr            },
576   { X86::VPMOVZXBQZ128rm        ,    X86::VPMOVZXBQrm            },
577   { X86::VPMOVZXBQZ128rr        ,    X86::VPMOVZXBQrr            },
578   { X86::VPMOVZXBWZ128rm        ,    X86::VPMOVZXBWrm            },
579   { X86::VPMOVZXBWZ128rr        ,    X86::VPMOVZXBWrr            },
580   { X86::VPMOVZXDQZ128rm        ,    X86::VPMOVZXDQrm            },
581   { X86::VPMOVZXDQZ128rr        ,    X86::VPMOVZXDQrr            },
582   { X86::VPMOVZXWDZ128rm        ,    X86::VPMOVZXWDrm            },
583   { X86::VPMOVZXWDZ128rr        ,    X86::VPMOVZXWDrr            },
584   { X86::VPMOVZXWQZ128rm        ,    X86::VPMOVZXWQrm            },
585   { X86::VPMOVZXWQZ128rr        ,    X86::VPMOVZXWQrr            },
586   { X86::VPMULDQZ128rm          ,    X86::VPMULDQrm              },
587   { X86::VPMULDQZ128rr          ,    X86::VPMULDQrr              },
588   { X86::VPMULHRSWZ128rm        ,    X86::VPMULHRSWrm            },
589   { X86::VPMULHRSWZ128rr        ,    X86::VPMULHRSWrr            },
590   { X86::VPMULHUWZ128rm         ,    X86::VPMULHUWrm             },
591   { X86::VPMULHUWZ128rr         ,    X86::VPMULHUWrr             },
592   { X86::VPMULHWZ128rm          ,    X86::VPMULHWrm              },
593   { X86::VPMULHWZ128rr          ,    X86::VPMULHWrr              },
594   { X86::VPMULLDZ128rm          ,    X86::VPMULLDrm              },
595   { X86::VPMULLDZ128rr          ,    X86::VPMULLDrr              },
596   { X86::VPMULLWZ128rm          ,    X86::VPMULLWrm              },
597   { X86::VPMULLWZ128rr          ,    X86::VPMULLWrr              },
598   { X86::VPMULUDQZ128rm         ,    X86::VPMULUDQrm             },
599   { X86::VPMULUDQZ128rr         ,    X86::VPMULUDQrr             },
600   { X86::VPORDZ128rm            ,    X86::VPORrm                 },
601   { X86::VPORDZ128rr            ,    X86::VPORrr                 },
602   { X86::VPORQZ128rm            ,    X86::VPORrm                 },
603   { X86::VPORQZ128rr            ,    X86::VPORrr                 },
604   { X86::VPSADBWZ128rm          ,    X86::VPSADBWrm              },
605   { X86::VPSADBWZ128rr          ,    X86::VPSADBWrr              },
606   { X86::VPSHUFBZ128rm          ,    X86::VPSHUFBrm              },
607   { X86::VPSHUFBZ128rr          ,    X86::VPSHUFBrr              },
608   { X86::VPSHUFDZ128mi          ,    X86::VPSHUFDmi              },
609   { X86::VPSHUFDZ128ri          ,    X86::VPSHUFDri              },
610   { X86::VPSHUFHWZ128mi         ,    X86::VPSHUFHWmi             },
611   { X86::VPSHUFHWZ128ri         ,    X86::VPSHUFHWri             },
612   { X86::VPSHUFLWZ128mi         ,    X86::VPSHUFLWmi             },
613   { X86::VPSHUFLWZ128ri         ,    X86::VPSHUFLWri             },
614   { X86::VPSLLDQZ128rr          ,    X86::VPSLLDQri              },
615   { X86::VPSLLDZ128ri           ,    X86::VPSLLDri               },
616   { X86::VPSLLDZ128rm           ,    X86::VPSLLDrm               },
617   { X86::VPSLLDZ128rr           ,    X86::VPSLLDrr               },
618   { X86::VPSLLQZ128ri           ,    X86::VPSLLQri               },
619   { X86::VPSLLQZ128rm           ,    X86::VPSLLQrm               },
620   { X86::VPSLLQZ128rr           ,    X86::VPSLLQrr               },
621   { X86::VPSLLVDZ128rm          ,    X86::VPSLLVDrm              },
622   { X86::VPSLLVDZ128rr          ,    X86::VPSLLVDrr              },
623   { X86::VPSLLVQZ128rm          ,    X86::VPSLLVQrm              },
624   { X86::VPSLLVQZ128rr          ,    X86::VPSLLVQrr              },
625   { X86::VPSLLWZ128ri           ,    X86::VPSLLWri               },
626   { X86::VPSLLWZ128rm           ,    X86::VPSLLWrm               },
627   { X86::VPSLLWZ128rr           ,    X86::VPSLLWrr               },
628   { X86::VPSRADZ128ri           ,    X86::VPSRADri               },
629   { X86::VPSRADZ128rm           ,    X86::VPSRADrm               },
630   { X86::VPSRADZ128rr           ,    X86::VPSRADrr               },
631   { X86::VPSRAVDZ128rm          ,    X86::VPSRAVDrm              },
632   { X86::VPSRAVDZ128rr          ,    X86::VPSRAVDrr              },
633   { X86::VPSRAWZ128ri           ,    X86::VPSRAWri               },
634   { X86::VPSRAWZ128rm           ,    X86::VPSRAWrm               },
635   { X86::VPSRAWZ128rr           ,    X86::VPSRAWrr               },
636   { X86::VPSRLDQZ128rr          ,    X86::VPSRLDQri              },
637   { X86::VPSRLDZ128ri           ,    X86::VPSRLDri               },
638   { X86::VPSRLDZ128rm           ,    X86::VPSRLDrm               },
639   { X86::VPSRLDZ128rr           ,    X86::VPSRLDrr               },
640   { X86::VPSRLQZ128ri           ,    X86::VPSRLQri               },
641   { X86::VPSRLQZ128rm           ,    X86::VPSRLQrm               },
642   { X86::VPSRLQZ128rr           ,    X86::VPSRLQrr               },
643   { X86::VPSRLVDZ128rm          ,    X86::VPSRLVDrm              },
644   { X86::VPSRLVDZ128rr          ,    X86::VPSRLVDrr              },
645   { X86::VPSRLVQZ128rm          ,    X86::VPSRLVQrm              },
646   { X86::VPSRLVQZ128rr          ,    X86::VPSRLVQrr              },
647   { X86::VPSRLWZ128ri           ,    X86::VPSRLWri               },
648   { X86::VPSRLWZ128rm           ,    X86::VPSRLWrm               },
649   { X86::VPSRLWZ128rr           ,    X86::VPSRLWrr               },
650   { X86::VPSUBBZ128rm           ,    X86::VPSUBBrm               },
651   { X86::VPSUBBZ128rr           ,    X86::VPSUBBrr               },
652   { X86::VPSUBDZ128rm           ,    X86::VPSUBDrm               },
653   { X86::VPSUBDZ128rr           ,    X86::VPSUBDrr               },
654   { X86::VPSUBQZ128rm           ,    X86::VPSUBQrm               },
655   { X86::VPSUBQZ128rr           ,    X86::VPSUBQrr               },
656   { X86::VPSUBSBZ128rm          ,    X86::VPSUBSBrm              },
657   { X86::VPSUBSBZ128rr          ,    X86::VPSUBSBrr              },
658   { X86::VPSUBSWZ128rm          ,    X86::VPSUBSWrm              },
659   { X86::VPSUBSWZ128rr          ,    X86::VPSUBSWrr              },
660   { X86::VPSUBUSBZ128rm         ,    X86::VPSUBUSBrm             },
661   { X86::VPSUBUSBZ128rr         ,    X86::VPSUBUSBrr             },
662   { X86::VPSUBUSWZ128rm         ,    X86::VPSUBUSWrm             },
663   { X86::VPSUBUSWZ128rr         ,    X86::VPSUBUSWrr             },
664   { X86::VPSUBWZ128rm           ,    X86::VPSUBWrm               },
665   { X86::VPSUBWZ128rr           ,    X86::VPSUBWrr               },
666   { X86::VPUNPCKHBWZ128rm       ,    X86::VPUNPCKHBWrm           },
667   { X86::VPUNPCKHBWZ128rr       ,    X86::VPUNPCKHBWrr           },
668   { X86::VPUNPCKHDQZ128rm       ,    X86::VPUNPCKHDQrm           },
669   { X86::VPUNPCKHDQZ128rr       ,    X86::VPUNPCKHDQrr           },
670   { X86::VPUNPCKHQDQZ128rm      ,    X86::VPUNPCKHQDQrm          },
671   { X86::VPUNPCKHQDQZ128rr      ,    X86::VPUNPCKHQDQrr          },
672   { X86::VPUNPCKHWDZ128rm       ,    X86::VPUNPCKHWDrm           },
673   { X86::VPUNPCKHWDZ128rr       ,    X86::VPUNPCKHWDrr           },
674   { X86::VPUNPCKLBWZ128rm       ,    X86::VPUNPCKLBWrm           },
675   { X86::VPUNPCKLBWZ128rr       ,    X86::VPUNPCKLBWrr           },
676   { X86::VPUNPCKLDQZ128rm       ,    X86::VPUNPCKLDQrm           },
677   { X86::VPUNPCKLDQZ128rr       ,    X86::VPUNPCKLDQrr           },
678   { X86::VPUNPCKLQDQZ128rm      ,    X86::VPUNPCKLQDQrm          },
679   { X86::VPUNPCKLQDQZ128rr      ,    X86::VPUNPCKLQDQrr          },
680   { X86::VPUNPCKLWDZ128rm       ,    X86::VPUNPCKLWDrm           },
681   { X86::VPUNPCKLWDZ128rr       ,    X86::VPUNPCKLWDrr           },
682   { X86::VPXORDZ128rm           ,    X86::VPXORrm                },
683   { X86::VPXORDZ128rr           ,    X86::VPXORrr                },
684   { X86::VPXORQZ128rm           ,    X86::VPXORrm                },
685   { X86::VPXORQZ128rr           ,    X86::VPXORrr                },
686   { X86::VSHUFPDZ128rmi         ,    X86::VSHUFPDrmi             },
687   { X86::VSHUFPDZ128rri         ,    X86::VSHUFPDrri             },
688   { X86::VSHUFPSZ128rmi         ,    X86::VSHUFPSrmi             },
689   { X86::VSHUFPSZ128rri         ,    X86::VSHUFPSrri             },
690   { X86::VSQRTPDZ128m           ,    X86::VSQRTPDm               },
691   { X86::VSQRTPDZ128r           ,    X86::VSQRTPDr               },
692   { X86::VSQRTPSZ128m           ,    X86::VSQRTPSm               },
693   { X86::VSQRTPSZ128r           ,    X86::VSQRTPSr               },
694   { X86::VSUBPDZ128rm           ,    X86::VSUBPDrm               },
695   { X86::VSUBPDZ128rr           ,    X86::VSUBPDrr               },
696   { X86::VSUBPSZ128rm           ,    X86::VSUBPSrm               },
697   { X86::VSUBPSZ128rr           ,    X86::VSUBPSrr               },
698   { X86::VUNPCKHPDZ128rm        ,    X86::VUNPCKHPDrm            },
699   { X86::VUNPCKHPDZ128rr        ,    X86::VUNPCKHPDrr            },
700   { X86::VUNPCKHPSZ128rm        ,    X86::VUNPCKHPSrm            },
701   { X86::VUNPCKHPSZ128rr        ,    X86::VUNPCKHPSrr            },
702   { X86::VUNPCKLPDZ128rm        ,    X86::VUNPCKLPDrm            },
703   { X86::VUNPCKLPDZ128rr        ,    X86::VUNPCKLPDrr            },
704   { X86::VUNPCKLPSZ128rm        ,    X86::VUNPCKLPSrm            },
705   { X86::VUNPCKLPSZ128rr        ,    X86::VUNPCKLPSrr            },
706   { X86::VXORPDZ128rm           ,    X86::VXORPDrm               },
707   { X86::VXORPDZ128rr           ,    X86::VXORPDrr               },
708   { X86::VXORPSZ128rm           ,    X86::VXORPSrm               },
709   { X86::VXORPSZ128rr           ,    X86::VXORPSrr               },
710 };
711
712
713 // X86 EVEX encoded instructions that have a VEX 256 encoding
714 // (table format: <EVEX opcode, VEX-256 opcode>).
715  static const X86EvexToVexCompressTableEntry X86EvexToVex256CompressTable[] = {
716   { X86::VADDPDZ256rm           ,     X86::VADDPDYrm             },
717   { X86::VADDPDZ256rr           ,     X86::VADDPDYrr             },
718   { X86::VADDPSZ256rm           ,     X86::VADDPSYrm             },
719   { X86::VADDPSZ256rr           ,     X86::VADDPSYrr             },
720   { X86::VANDNPDZ256rm          ,     X86::VANDNPDYrm            },
721   { X86::VANDNPDZ256rr          ,     X86::VANDNPDYrr            },
722   { X86::VANDNPSZ256rm          ,     X86::VANDNPSYrm            },
723   { X86::VANDNPSZ256rr          ,     X86::VANDNPSYrr            },
724   { X86::VANDPDZ256rm           ,     X86::VANDPDYrm             },
725   { X86::VANDPDZ256rr           ,     X86::VANDPDYrr             },
726   { X86::VANDPSZ256rm           ,     X86::VANDPSYrm             },
727   { X86::VANDPSZ256rr           ,     X86::VANDPSYrr             },
728   { X86::VBROADCASTSDZ256m      ,     X86::VBROADCASTSDYrm       },
729   { X86::VBROADCASTSDZ256r      ,     X86::VBROADCASTSDYrr       },
730   { X86::VBROADCASTSDZ256r_s    ,     X86::VBROADCASTSDYrr       },
731   { X86::VBROADCASTSSZ256m      ,     X86::VBROADCASTSSYrm       },
732   { X86::VBROADCASTSSZ256r      ,     X86::VBROADCASTSSYrr       },
733   { X86::VBROADCASTSSZ256r_s    ,     X86::VBROADCASTSSYrr       },
734   { X86::VCVTDQ2PDZ256rm        ,     X86::VCVTDQ2PDYrm          },
735   { X86::VCVTDQ2PDZ256rr        ,     X86::VCVTDQ2PDYrr          },
736   { X86::VCVTDQ2PSZ256rm        ,     X86::VCVTDQ2PSYrm          },
737   { X86::VCVTDQ2PSZ256rr        ,     X86::VCVTDQ2PSYrr          },
738   { X86::VCVTPD2DQZ256rm        ,     X86::VCVTPD2DQYrm          },
739   { X86::VCVTPD2DQZ256rr        ,     X86::VCVTPD2DQYrr          },
740   { X86::VCVTPD2PSZ256rm        ,     X86::VCVTPD2PSYrm          },
741   { X86::VCVTPD2PSZ256rr        ,     X86::VCVTPD2PSYrr          },
742   { X86::VCVTPH2PSZ256rm        ,     X86::VCVTPH2PSYrm          },
743   { X86::VCVTPH2PSZ256rr        ,     X86::VCVTPH2PSYrr          },
744   { X86::VCVTPS2DQZ256rm        ,     X86::VCVTPS2DQYrm          },
745   { X86::VCVTPS2DQZ256rr        ,     X86::VCVTPS2DQYrr          },
746   { X86::VCVTPS2PDZ256rm        ,     X86::VCVTPS2PDYrm          },
747   { X86::VCVTPS2PDZ256rr        ,     X86::VCVTPS2PDYrr          },
748   { X86::VCVTPS2PHZ256mr        ,     X86::VCVTPS2PHYmr          },
749   { X86::VCVTPS2PHZ256rr        ,     X86::VCVTPS2PHYrr          },
750   { X86::VCVTTPD2DQZ256rm       ,     X86::VCVTTPD2DQYrm         },
751   { X86::VCVTTPD2DQZ256rr       ,     X86::VCVTTPD2DQYrr         },
752   { X86::VCVTTPS2DQZ256rm       ,     X86::VCVTTPS2DQYrm         },
753   { X86::VCVTTPS2DQZ256rr       ,     X86::VCVTTPS2DQYrr         },
754   { X86::VDIVPDZ256rm           ,     X86::VDIVPDYrm             },
755   { X86::VDIVPDZ256rr           ,     X86::VDIVPDYrr             },
756   { X86::VDIVPSZ256rm           ,     X86::VDIVPSYrm             },
757   { X86::VDIVPSZ256rr           ,     X86::VDIVPSYrr             },
758   { X86::VEXTRACTF32x4Z256mr    ,    X86::VEXTRACTF128mr         },
759   { X86::VEXTRACTF64x2Z256mr    ,    X86::VEXTRACTF128mr         },
760   { X86::VEXTRACTF32x4Z256rr    ,    X86::VEXTRACTF128rr         },
761   { X86::VEXTRACTF64x2Z256rr    ,    X86::VEXTRACTF128rr         },
762   { X86::VEXTRACTI32x4Z256mr    ,    X86::VEXTRACTI128mr         },
763   { X86::VEXTRACTI64x2Z256mr    ,    X86::VEXTRACTI128mr         },
764   { X86::VEXTRACTI32x4Z256rr    ,    X86::VEXTRACTI128rr         },
765   { X86::VEXTRACTI64x2Z256rr    ,    X86::VEXTRACTI128rr         },
766   { X86::VFMADD132PDZ256m       ,     X86::VFMADD132PDYm         },
767   { X86::VFMADD132PDZ256r       ,     X86::VFMADD132PDYr         },
768   { X86::VFMADD132PSZ256m       ,     X86::VFMADD132PSYm         },
769   { X86::VFMADD132PSZ256r       ,     X86::VFMADD132PSYr         },
770   { X86::VFMADD213PDZ256m       ,     X86::VFMADD213PDYm         },
771   { X86::VFMADD213PDZ256r       ,     X86::VFMADD213PDYr         },
772   { X86::VFMADD213PSZ256m       ,     X86::VFMADD213PSYm         },
773   { X86::VFMADD213PSZ256r       ,     X86::VFMADD213PSYr         },
774   { X86::VFMADD231PDZ256m       ,     X86::VFMADD231PDYm         },
775   { X86::VFMADD231PDZ256r       ,     X86::VFMADD231PDYr         },
776   { X86::VFMADD231PSZ256m       ,     X86::VFMADD231PSYm         },
777   { X86::VFMADD231PSZ256r       ,     X86::VFMADD231PSYr         },
778   { X86::VFMADDSUB132PDZ256m    ,     X86::VFMADDSUB132PDYm      },
779   { X86::VFMADDSUB132PDZ256r    ,     X86::VFMADDSUB132PDYr      },
780   { X86::VFMADDSUB132PSZ256m    ,     X86::VFMADDSUB132PSYm      },
781   { X86::VFMADDSUB132PSZ256r    ,     X86::VFMADDSUB132PSYr      },
782   { X86::VFMADDSUB213PDZ256m    ,     X86::VFMADDSUB213PDYm      },
783   { X86::VFMADDSUB213PDZ256r    ,     X86::VFMADDSUB213PDYr      },
784   { X86::VFMADDSUB213PSZ256m    ,     X86::VFMADDSUB213PSYm      },
785   { X86::VFMADDSUB213PSZ256r    ,     X86::VFMADDSUB213PSYr      },
786   { X86::VFMADDSUB231PDZ256m    ,     X86::VFMADDSUB231PDYm      },
787   { X86::VFMADDSUB231PDZ256r    ,     X86::VFMADDSUB231PDYr      },
788   { X86::VFMADDSUB231PSZ256m    ,     X86::VFMADDSUB231PSYm      },
789   { X86::VFMADDSUB231PSZ256r    ,     X86::VFMADDSUB231PSYr      },
790   { X86::VFMSUB132PDZ256m       ,     X86::VFMSUB132PDYm         },
791   { X86::VFMSUB132PDZ256r       ,     X86::VFMSUB132PDYr         },
792   { X86::VFMSUB132PSZ256m       ,     X86::VFMSUB132PSYm         },
793   { X86::VFMSUB132PSZ256r       ,     X86::VFMSUB132PSYr         },
794   { X86::VFMSUB213PDZ256m       ,     X86::VFMSUB213PDYm         },
795   { X86::VFMSUB213PDZ256r       ,     X86::VFMSUB213PDYr         },
796   { X86::VFMSUB213PSZ256m       ,     X86::VFMSUB213PSYm         },
797   { X86::VFMSUB213PSZ256r       ,     X86::VFMSUB213PSYr         },
798   { X86::VFMSUB231PDZ256m       ,     X86::VFMSUB231PDYm         },
799   { X86::VFMSUB231PDZ256r       ,     X86::VFMSUB231PDYr         },
800   { X86::VFMSUB231PSZ256m       ,     X86::VFMSUB231PSYm         },
801   { X86::VFMSUB231PSZ256r       ,     X86::VFMSUB231PSYr         },
802   { X86::VFMSUBADD132PDZ256m    ,     X86::VFMSUBADD132PDYm      },
803   { X86::VFMSUBADD132PDZ256r    ,     X86::VFMSUBADD132PDYr      },
804   { X86::VFMSUBADD132PSZ256m    ,     X86::VFMSUBADD132PSYm      },
805   { X86::VFMSUBADD132PSZ256r    ,     X86::VFMSUBADD132PSYr      },
806   { X86::VFMSUBADD213PDZ256m    ,     X86::VFMSUBADD213PDYm      },
807   { X86::VFMSUBADD213PDZ256r    ,     X86::VFMSUBADD213PDYr      },
808   { X86::VFMSUBADD213PSZ256m    ,     X86::VFMSUBADD213PSYm      },
809   { X86::VFMSUBADD213PSZ256r    ,     X86::VFMSUBADD213PSYr      },
810   { X86::VFMSUBADD231PDZ256m    ,     X86::VFMSUBADD231PDYm      },
811   { X86::VFMSUBADD231PDZ256r    ,     X86::VFMSUBADD231PDYr      },
812   { X86::VFMSUBADD231PSZ256m    ,     X86::VFMSUBADD231PSYm      },
813   { X86::VFMSUBADD231PSZ256r    ,     X86::VFMSUBADD231PSYr      },
814   { X86::VFNMADD132PDZ256m      ,     X86::VFNMADD132PDYm        },
815   { X86::VFNMADD132PDZ256r      ,     X86::VFNMADD132PDYr        },
816   { X86::VFNMADD132PSZ256m      ,     X86::VFNMADD132PSYm        },
817   { X86::VFNMADD132PSZ256r      ,     X86::VFNMADD132PSYr        },
818   { X86::VFNMADD213PDZ256m      ,     X86::VFNMADD213PDYm        },
819   { X86::VFNMADD213PDZ256r      ,     X86::VFNMADD213PDYr        },
820   { X86::VFNMADD213PSZ256m      ,     X86::VFNMADD213PSYm        },
821   { X86::VFNMADD213PSZ256r      ,     X86::VFNMADD213PSYr        },
822   { X86::VFNMADD231PDZ256m      ,     X86::VFNMADD231PDYm        },
823   { X86::VFNMADD231PDZ256r      ,     X86::VFNMADD231PDYr        },
824   { X86::VFNMADD231PSZ256m      ,     X86::VFNMADD231PSYm        },
825   { X86::VFNMADD231PSZ256r      ,     X86::VFNMADD231PSYr        },
826   { X86::VFNMSUB132PDZ256m      ,     X86::VFNMSUB132PDYm        },
827   { X86::VFNMSUB132PDZ256r      ,     X86::VFNMSUB132PDYr        },
828   { X86::VFNMSUB132PSZ256m      ,     X86::VFNMSUB132PSYm        },
829   { X86::VFNMSUB132PSZ256r      ,     X86::VFNMSUB132PSYr        },
830   { X86::VFNMSUB213PDZ256m      ,     X86::VFNMSUB213PDYm        },
831   { X86::VFNMSUB213PDZ256r      ,     X86::VFNMSUB213PDYr        },
832   { X86::VFNMSUB213PSZ256m      ,     X86::VFNMSUB213PSYm        },
833   { X86::VFNMSUB213PSZ256r      ,     X86::VFNMSUB213PSYr        },
834   { X86::VFNMSUB231PDZ256m      ,     X86::VFNMSUB231PDYm        },
835   { X86::VFNMSUB231PDZ256r      ,     X86::VFNMSUB231PDYr        },
836   { X86::VFNMSUB231PSZ256m      ,     X86::VFNMSUB231PSYm        },
837   { X86::VFNMSUB231PSZ256r      ,     X86::VFNMSUB231PSYr        },
838   { X86::VINSERTF32x4Z256rm     ,    X86::VINSERTF128rm          },
839   { X86::VINSERTF64x2Z256rm     ,    X86::VINSERTF128rm          },
840   { X86::VINSERTF32x4Z256rr     ,    X86::VINSERTF128rr          },
841   { X86::VINSERTF64x2Z256rr     ,    X86::VINSERTF128rr          },
842   { X86::VINSERTI32x4Z256rm     ,    X86::VINSERTI128rm          },
843   { X86::VINSERTI64x2Z256rm     ,    X86::VINSERTI128rm          },
844   { X86::VINSERTI32x4Z256rr     ,    X86::VINSERTI128rr          },
845   { X86::VINSERTI64x2Z256rr     ,    X86::VINSERTI128rr          },
846   { X86::VMAXCPDZ256rm          ,     X86::VMAXCPDYrm            },
847   { X86::VMAXCPDZ256rr          ,     X86::VMAXCPDYrr            },
848   { X86::VMAXCPSZ256rm          ,     X86::VMAXCPSYrm            },
849   { X86::VMAXCPSZ256rr          ,     X86::VMAXCPSYrr            },
850   { X86::VMAXPDZ256rm           ,     X86::VMAXPDYrm             },
851   { X86::VMAXPDZ256rr           ,     X86::VMAXPDYrr             },
852   { X86::VMAXPSZ256rm           ,     X86::VMAXPSYrm             },
853   { X86::VMAXPSZ256rr           ,     X86::VMAXPSYrr             },
854   { X86::VMINCPDZ256rm          ,     X86::VMINCPDYrm            },
855   { X86::VMINCPDZ256rr          ,     X86::VMINCPDYrr            },
856   { X86::VMINCPSZ256rm          ,     X86::VMINCPSYrm            },
857   { X86::VMINCPSZ256rr          ,     X86::VMINCPSYrr            },
858   { X86::VMINPDZ256rm           ,     X86::VMINPDYrm             },
859   { X86::VMINPDZ256rr           ,     X86::VMINPDYrr             },
860   { X86::VMINPSZ256rm           ,     X86::VMINPSYrm             },
861   { X86::VMINPSZ256rr           ,     X86::VMINPSYrr             },
862   { X86::VMOVAPDZ256mr          ,     X86::VMOVAPDYmr            },
863   { X86::VMOVAPDZ256rm          ,     X86::VMOVAPDYrm            },
864   { X86::VMOVAPDZ256rr          ,     X86::VMOVAPDYrr            },
865   { X86::VMOVAPDZ256rr_REV      ,     X86::VMOVAPDYrr_REV        },
866   { X86::VMOVAPSZ256mr          ,     X86::VMOVAPSYmr            },
867   { X86::VMOVAPSZ256rm          ,     X86::VMOVAPSYrm            },
868   { X86::VMOVAPSZ256rr          ,     X86::VMOVAPSYrr            },
869   { X86::VMOVAPSZ256rr_REV      ,     X86::VMOVAPSYrr_REV        },
870   { X86::VMOVDDUPZ256rm         ,     X86::VMOVDDUPYrm           },
871   { X86::VMOVDDUPZ256rr         ,     X86::VMOVDDUPYrr           },
872   { X86::VMOVDQA32Z256mr        ,     X86::VMOVDQAYmr            },
873   { X86::VMOVDQA32Z256rm        ,     X86::VMOVDQAYrm            },
874   { X86::VMOVDQA32Z256rr        ,     X86::VMOVDQAYrr            },
875   { X86::VMOVDQA32Z256rr_REV    ,     X86::VMOVDQAYrr_REV        },
876   { X86::VMOVDQA64Z256mr        ,     X86::VMOVDQAYmr            },
877   { X86::VMOVDQA64Z256rm        ,     X86::VMOVDQAYrm            },
878   { X86::VMOVDQA64Z256rr        ,     X86::VMOVDQAYrr            },
879   { X86::VMOVDQA64Z256rr_REV    ,     X86::VMOVDQAYrr_REV        },
880   { X86::VMOVDQU16Z256mr        ,     X86::VMOVDQUYmr            },
881   { X86::VMOVDQU16Z256rm        ,     X86::VMOVDQUYrm            },
882   { X86::VMOVDQU16Z256rr        ,     X86::VMOVDQUYrr            },
883   { X86::VMOVDQU16Z256rr_REV    ,     X86::VMOVDQUYrr_REV        },
884   { X86::VMOVDQU32Z256mr        ,     X86::VMOVDQUYmr            },
885   { X86::VMOVDQU32Z256rm        ,     X86::VMOVDQUYrm            },
886   { X86::VMOVDQU32Z256rr        ,     X86::VMOVDQUYrr            },
887   { X86::VMOVDQU32Z256rr_REV    ,     X86::VMOVDQUYrr_REV        },
888   { X86::VMOVDQU64Z256mr        ,     X86::VMOVDQUYmr            },
889   { X86::VMOVDQU64Z256rm        ,     X86::VMOVDQUYrm            },
890   { X86::VMOVDQU64Z256rr        ,     X86::VMOVDQUYrr            },
891   { X86::VMOVDQU64Z256rr_REV    ,     X86::VMOVDQUYrr_REV        },
892   { X86::VMOVDQU8Z256mr         ,     X86::VMOVDQUYmr            },
893   { X86::VMOVDQU8Z256rm         ,     X86::VMOVDQUYrm            },
894   { X86::VMOVDQU8Z256rr         ,     X86::VMOVDQUYrr            },
895   { X86::VMOVDQU8Z256rr_REV     ,     X86::VMOVDQUYrr_REV        },
896   { X86::VMOVNTDQAZ256rm        ,     X86::VMOVNTDQAYrm          },
897   { X86::VMOVNTDQZ256mr         ,     X86::VMOVNTDQYmr           },
898   { X86::VMOVNTPDZ256mr         ,     X86::VMOVNTPDYmr           },
899   { X86::VMOVNTPSZ256mr         ,     X86::VMOVNTPSYmr           },
900   { X86::VMOVSHDUPZ256rm        ,     X86::VMOVSHDUPYrm          },
901   { X86::VMOVSHDUPZ256rr        ,     X86::VMOVSHDUPYrr          },
902   { X86::VMOVSLDUPZ256rm        ,     X86::VMOVSLDUPYrm          },
903   { X86::VMOVSLDUPZ256rr        ,     X86::VMOVSLDUPYrr          },
904   { X86::VMOVUPDZ256mr          ,     X86::VMOVUPDYmr            },
905   { X86::VMOVUPDZ256rm          ,     X86::VMOVUPDYrm            },
906   { X86::VMOVUPDZ256rr          ,     X86::VMOVUPDYrr            },
907   { X86::VMOVUPDZ256rr_REV      ,     X86::VMOVUPDYrr_REV        },
908   { X86::VMOVUPSZ256mr          ,     X86::VMOVUPSYmr            },
909   { X86::VMOVUPSZ256rm          ,     X86::VMOVUPSYrm            },
910   { X86::VMOVUPSZ256rr          ,     X86::VMOVUPSYrr            },
911   { X86::VMOVUPSZ256rr_REV      ,     X86::VMOVUPSYrr_REV        },
912   { X86::VMULPDZ256rm           ,     X86::VMULPDYrm             },
913   { X86::VMULPDZ256rr           ,     X86::VMULPDYrr             },
914   { X86::VMULPSZ256rm           ,     X86::VMULPSYrm             },
915   { X86::VMULPSZ256rr           ,     X86::VMULPSYrr             },
916   { X86::VORPDZ256rm            ,     X86::VORPDYrm              },
917   { X86::VORPDZ256rr            ,     X86::VORPDYrr              },
918   { X86::VORPSZ256rm            ,     X86::VORPSYrm              },
919   { X86::VORPSZ256rr            ,     X86::VORPSYrr              },
920   { X86::VPABSBZ256rm           ,     X86::VPABSBYrm             },
921   { X86::VPABSBZ256rr           ,     X86::VPABSBYrr             },
922   { X86::VPABSDZ256rm           ,     X86::VPABSDYrm             },
923   { X86::VPABSDZ256rr           ,     X86::VPABSDYrr             },
924   { X86::VPABSWZ256rm           ,     X86::VPABSWYrm             },
925   { X86::VPABSWZ256rr           ,     X86::VPABSWYrr             },
926   { X86::VPACKSSDWZ256rm        ,     X86::VPACKSSDWYrm          },
927   { X86::VPACKSSDWZ256rr        ,     X86::VPACKSSDWYrr          },
928   { X86::VPACKSSWBZ256rm        ,     X86::VPACKSSWBYrm          },
929   { X86::VPACKSSWBZ256rr        ,     X86::VPACKSSWBYrr          },
930   { X86::VPACKUSDWZ256rm        ,     X86::VPACKUSDWYrm          },
931   { X86::VPACKUSDWZ256rr        ,     X86::VPACKUSDWYrr          },
932   { X86::VPACKUSWBZ256rm        ,     X86::VPACKUSWBYrm          },
933   { X86::VPACKUSWBZ256rr        ,     X86::VPACKUSWBYrr          },
934   { X86::VPADDBZ256rm           ,     X86::VPADDBYrm             },
935   { X86::VPADDBZ256rr           ,     X86::VPADDBYrr             },
936   { X86::VPADDDZ256rm           ,     X86::VPADDDYrm             },
937   { X86::VPADDDZ256rr           ,     X86::VPADDDYrr             },
938   { X86::VPADDQZ256rm           ,     X86::VPADDQYrm             },
939   { X86::VPADDQZ256rr           ,     X86::VPADDQYrr             },
940   { X86::VPADDSBZ256rm          ,     X86::VPADDSBYrm            },
941   { X86::VPADDSBZ256rr          ,     X86::VPADDSBYrr            },
942   { X86::VPADDSWZ256rm          ,     X86::VPADDSWYrm            },
943   { X86::VPADDSWZ256rr          ,     X86::VPADDSWYrr            },
944   { X86::VPADDUSBZ256rm         ,     X86::VPADDUSBYrm           },
945   { X86::VPADDUSBZ256rr         ,     X86::VPADDUSBYrr           },
946   { X86::VPADDUSWZ256rm         ,     X86::VPADDUSWYrm           },
947   { X86::VPADDUSWZ256rr         ,     X86::VPADDUSWYrr           },
948   { X86::VPADDWZ256rm           ,     X86::VPADDWYrm             },
949   { X86::VPADDWZ256rr           ,     X86::VPADDWYrr             },
950   { X86::VPALIGNRZ256rmi        ,     X86::VPALIGNRYrmi          },
951   { X86::VPALIGNRZ256rri        ,     X86::VPALIGNRYrri          },
952   { X86::VPANDDZ256rm           ,     X86::VPANDYrm              },
953   { X86::VPANDDZ256rr           ,     X86::VPANDYrr              },
954   { X86::VPANDQZ256rm           ,     X86::VPANDYrm              },
955   { X86::VPANDQZ256rr           ,     X86::VPANDYrr              },
956   { X86::VPAVGBZ256rm           ,     X86::VPAVGBYrm             },
957   { X86::VPAVGBZ256rr           ,     X86::VPAVGBYrr             },
958   { X86::VPAVGWZ256rm           ,     X86::VPAVGWYrm             },
959   { X86::VPAVGWZ256rr           ,     X86::VPAVGWYrr             },
960   { X86::VPBROADCASTBZ256m      ,     X86::VPBROADCASTBYrm       },
961   { X86::VPBROADCASTBZ256r      ,     X86::VPBROADCASTBYrr       },
962   { X86::VPBROADCASTDZ256m      ,     X86::VPBROADCASTDYrm       },
963   { X86::VPBROADCASTDZ256r      ,     X86::VPBROADCASTDYrr       },
964   { X86::VPBROADCASTQZ256m      ,     X86::VPBROADCASTQYrm       },
965   { X86::VPBROADCASTQZ256r      ,     X86::VPBROADCASTQYrr       },
966   { X86::VPBROADCASTWZ256m      ,     X86::VPBROADCASTWYrm       },
967   { X86::VPBROADCASTWZ256r      ,     X86::VPBROADCASTWYrr       },
968   { X86::VPERMDZ256rm           ,     X86::VPERMDYrm             },
969   { X86::VPERMDZ256rr           ,     X86::VPERMDYrr             },
970   { X86::VPERMILPDZ256mi        ,     X86::VPERMILPDYmi          },
971   { X86::VPERMILPDZ256ri        ,     X86::VPERMILPDYri          },
972   { X86::VPERMILPDZ256rm        ,     X86::VPERMILPDYrm          },
973   { X86::VPERMILPDZ256rr        ,     X86::VPERMILPDYrr          },
974   { X86::VPERMILPSZ256mi        ,     X86::VPERMILPSYmi          },
975   { X86::VPERMILPSZ256ri        ,     X86::VPERMILPSYri          },
976   { X86::VPERMILPSZ256rm        ,     X86::VPERMILPSYrm          },
977   { X86::VPERMILPSZ256rr        ,     X86::VPERMILPSYrr          },
978   { X86::VPERMPDZ256mi          ,     X86::VPERMPDYmi            },
979   { X86::VPERMPDZ256ri          ,     X86::VPERMPDYri            },
980   { X86::VPERMPSZ256rm          ,     X86::VPERMPSYrm            },
981   { X86::VPERMPSZ256rr          ,     X86::VPERMPSYrr            },
982   { X86::VPERMQZ256mi           ,     X86::VPERMQYmi             },
983   { X86::VPERMQZ256ri           ,     X86::VPERMQYri             },
984   { X86::VPMADDUBSWZ256rm       ,     X86::VPMADDUBSWYrm         },
985   { X86::VPMADDUBSWZ256rr       ,     X86::VPMADDUBSWYrr         },
986   { X86::VPMADDWDZ256rm         ,     X86::VPMADDWDYrm           },
987   { X86::VPMADDWDZ256rr         ,     X86::VPMADDWDYrr           },
988   { X86::VPMAXSBZ256rm          ,     X86::VPMAXSBYrm            },
989   { X86::VPMAXSBZ256rr          ,     X86::VPMAXSBYrr            },
990   { X86::VPMAXSDZ256rm          ,     X86::VPMAXSDYrm            },
991   { X86::VPMAXSDZ256rr          ,     X86::VPMAXSDYrr            },
992   { X86::VPMAXSWZ256rm          ,     X86::VPMAXSWYrm            },
993   { X86::VPMAXSWZ256rr          ,     X86::VPMAXSWYrr            },
994   { X86::VPMAXUBZ256rm          ,     X86::VPMAXUBYrm            },
995   { X86::VPMAXUBZ256rr          ,     X86::VPMAXUBYrr            },
996   { X86::VPMAXUDZ256rm          ,     X86::VPMAXUDYrm            },
997   { X86::VPMAXUDZ256rr          ,     X86::VPMAXUDYrr            },
998   { X86::VPMAXUWZ256rm          ,     X86::VPMAXUWYrm            },
999   { X86::VPMAXUWZ256rr          ,     X86::VPMAXUWYrr            },
1000   { X86::VPMINSBZ256rm          ,     X86::VPMINSBYrm            },
1001   { X86::VPMINSBZ256rr          ,     X86::VPMINSBYrr            },
1002   { X86::VPMINSDZ256rm          ,     X86::VPMINSDYrm            },
1003   { X86::VPMINSDZ256rr          ,     X86::VPMINSDYrr            },
1004   { X86::VPMINSWZ256rm          ,     X86::VPMINSWYrm            },
1005   { X86::VPMINSWZ256rr          ,     X86::VPMINSWYrr            },
1006   { X86::VPMINUBZ256rm          ,     X86::VPMINUBYrm            },
1007   { X86::VPMINUBZ256rr          ,     X86::VPMINUBYrr            },
1008   { X86::VPMINUDZ256rm          ,     X86::VPMINUDYrm            },
1009   { X86::VPMINUDZ256rr          ,     X86::VPMINUDYrr            },
1010   { X86::VPMINUWZ256rm          ,     X86::VPMINUWYrm            },
1011   { X86::VPMINUWZ256rr          ,     X86::VPMINUWYrr            },
1012   { X86::VPMOVSXBDZ256rm        ,     X86::VPMOVSXBDYrm          },
1013   { X86::VPMOVSXBDZ256rr        ,     X86::VPMOVSXBDYrr          },
1014   { X86::VPMOVSXBQZ256rm        ,     X86::VPMOVSXBQYrm          },
1015   { X86::VPMOVSXBQZ256rr        ,     X86::VPMOVSXBQYrr          },
1016   { X86::VPMOVSXBWZ256rm        ,     X86::VPMOVSXBWYrm          },
1017   { X86::VPMOVSXBWZ256rr        ,     X86::VPMOVSXBWYrr          },
1018   { X86::VPMOVSXDQZ256rm        ,     X86::VPMOVSXDQYrm          },
1019   { X86::VPMOVSXDQZ256rr        ,     X86::VPMOVSXDQYrr          },
1020   { X86::VPMOVSXWDZ256rm        ,     X86::VPMOVSXWDYrm          },
1021   { X86::VPMOVSXWDZ256rr        ,     X86::VPMOVSXWDYrr          },
1022   { X86::VPMOVSXWQZ256rm        ,     X86::VPMOVSXWQYrm          },
1023   { X86::VPMOVSXWQZ256rr        ,     X86::VPMOVSXWQYrr          },
1024   { X86::VPMOVZXBDZ256rm        ,     X86::VPMOVZXBDYrm          },
1025   { X86::VPMOVZXBDZ256rr        ,     X86::VPMOVZXBDYrr          },
1026   { X86::VPMOVZXBQZ256rm        ,     X86::VPMOVZXBQYrm          },
1027   { X86::VPMOVZXBQZ256rr        ,     X86::VPMOVZXBQYrr          },
1028   { X86::VPMOVZXBWZ256rm        ,     X86::VPMOVZXBWYrm          },
1029   { X86::VPMOVZXBWZ256rr        ,     X86::VPMOVZXBWYrr          },
1030   { X86::VPMOVZXDQZ256rm        ,     X86::VPMOVZXDQYrm          },
1031   { X86::VPMOVZXDQZ256rr        ,     X86::VPMOVZXDQYrr          },
1032   { X86::VPMOVZXWDZ256rm        ,     X86::VPMOVZXWDYrm          },
1033   { X86::VPMOVZXWDZ256rr        ,     X86::VPMOVZXWDYrr          },
1034   { X86::VPMOVZXWQZ256rm        ,     X86::VPMOVZXWQYrm          },
1035   { X86::VPMOVZXWQZ256rr        ,     X86::VPMOVZXWQYrr          },
1036   { X86::VPMULDQZ256rm          ,     X86::VPMULDQYrm            },
1037   { X86::VPMULDQZ256rr          ,     X86::VPMULDQYrr            },
1038   { X86::VPMULHRSWZ256rm        ,     X86::VPMULHRSWYrm          },
1039   { X86::VPMULHRSWZ256rr        ,     X86::VPMULHRSWYrr          },
1040   { X86::VPMULHUWZ256rm         ,     X86::VPMULHUWYrm           },
1041   { X86::VPMULHUWZ256rr         ,     X86::VPMULHUWYrr           },
1042   { X86::VPMULHWZ256rm          ,     X86::VPMULHWYrm            },
1043   { X86::VPMULHWZ256rr          ,     X86::VPMULHWYrr            },
1044   { X86::VPMULLDZ256rm          ,     X86::VPMULLDYrm            },
1045   { X86::VPMULLDZ256rr          ,     X86::VPMULLDYrr            },
1046   { X86::VPMULLWZ256rm          ,     X86::VPMULLWYrm            },
1047   { X86::VPMULLWZ256rr          ,     X86::VPMULLWYrr            },
1048   { X86::VPMULUDQZ256rm         ,     X86::VPMULUDQYrm           },
1049   { X86::VPMULUDQZ256rr         ,     X86::VPMULUDQYrr           },
1050   { X86::VPORDZ256rm            ,     X86::VPORYrm               },
1051   { X86::VPORDZ256rr            ,     X86::VPORYrr               },
1052   { X86::VPORQZ256rm            ,     X86::VPORYrm               },
1053   { X86::VPORQZ256rr            ,     X86::VPORYrr               },
1054   { X86::VPSADBWZ256rm          ,     X86::VPSADBWYrm            },
1055   { X86::VPSADBWZ256rr          ,     X86::VPSADBWYrr            },
1056   { X86::VPSHUFBZ256rm          ,     X86::VPSHUFBYrm            },
1057   { X86::VPSHUFBZ256rr          ,     X86::VPSHUFBYrr            },
1058   { X86::VPSHUFDZ256mi          ,     X86::VPSHUFDYmi            },
1059   { X86::VPSHUFDZ256ri          ,     X86::VPSHUFDYri            },
1060   { X86::VPSHUFHWZ256mi         ,     X86::VPSHUFHWYmi           },
1061   { X86::VPSHUFHWZ256ri         ,     X86::VPSHUFHWYri           },
1062   { X86::VPSHUFLWZ256mi         ,     X86::VPSHUFLWYmi           },
1063   { X86::VPSHUFLWZ256ri         ,     X86::VPSHUFLWYri           },
1064   { X86::VPSLLDQZ256rr          ,     X86::VPSLLDQYri            },
1065   { X86::VPSLLDZ256ri           ,     X86::VPSLLDYri             },
1066   { X86::VPSLLDZ256rm           ,     X86::VPSLLDYrm             },
1067   { X86::VPSLLDZ256rr           ,     X86::VPSLLDYrr             },
1068   { X86::VPSLLQZ256ri           ,     X86::VPSLLQYri             },
1069   { X86::VPSLLQZ256rm           ,     X86::VPSLLQYrm             },
1070   { X86::VPSLLQZ256rr           ,     X86::VPSLLQYrr             },
1071   { X86::VPSLLVDZ256rm          ,     X86::VPSLLVDYrm            },
1072   { X86::VPSLLVDZ256rr          ,     X86::VPSLLVDYrr            },
1073   { X86::VPSLLVQZ256rm          ,     X86::VPSLLVQYrm            },
1074   { X86::VPSLLVQZ256rr          ,     X86::VPSLLVQYrr            },
1075   { X86::VPSLLWZ256ri           ,     X86::VPSLLWYri             },
1076   { X86::VPSLLWZ256rm           ,     X86::VPSLLWYrm             },
1077   { X86::VPSLLWZ256rr           ,     X86::VPSLLWYrr             },
1078   { X86::VPSRADZ256ri           ,     X86::VPSRADYri             },
1079   { X86::VPSRADZ256rm           ,     X86::VPSRADYrm             },
1080   { X86::VPSRADZ256rr           ,     X86::VPSRADYrr             },
1081   { X86::VPSRAVDZ256rm          ,     X86::VPSRAVDYrm            },
1082   { X86::VPSRAVDZ256rr          ,     X86::VPSRAVDYrr            },
1083   { X86::VPSRAWZ256ri           ,     X86::VPSRAWYri             },
1084   { X86::VPSRAWZ256rm           ,     X86::VPSRAWYrm             },
1085   { X86::VPSRAWZ256rr           ,     X86::VPSRAWYrr             },
1086   { X86::VPSRLDQZ256rr          ,     X86::VPSRLDQYri            },
1087   { X86::VPSRLDZ256ri           ,     X86::VPSRLDYri             },
1088   { X86::VPSRLDZ256rm           ,     X86::VPSRLDYrm             },
1089   { X86::VPSRLDZ256rr           ,     X86::VPSRLDYrr             },
1090   { X86::VPSRLQZ256ri           ,     X86::VPSRLQYri             },
1091   { X86::VPSRLQZ256rm           ,     X86::VPSRLQYrm             },
1092   { X86::VPSRLQZ256rr           ,     X86::VPSRLQYrr             },
1093   { X86::VPSRLVDZ256rm          ,     X86::VPSRLVDYrm            },
1094   { X86::VPSRLVDZ256rr          ,     X86::VPSRLVDYrr            },
1095   { X86::VPSRLVQZ256rm          ,     X86::VPSRLVQYrm            },
1096   { X86::VPSRLVQZ256rr          ,     X86::VPSRLVQYrr            },
1097   { X86::VPSRLWZ256ri           ,     X86::VPSRLWYri             },
1098   { X86::VPSRLWZ256rm           ,     X86::VPSRLWYrm             },
1099   { X86::VPSRLWZ256rr           ,     X86::VPSRLWYrr             },
1100   { X86::VPSUBBZ256rm           ,     X86::VPSUBBYrm             },
1101   { X86::VPSUBBZ256rr           ,     X86::VPSUBBYrr             },
1102   { X86::VPSUBDZ256rm           ,     X86::VPSUBDYrm             },
1103   { X86::VPSUBDZ256rr           ,     X86::VPSUBDYrr             },
1104   { X86::VPSUBQZ256rm           ,     X86::VPSUBQYrm             },
1105   { X86::VPSUBQZ256rr           ,     X86::VPSUBQYrr             },
1106   { X86::VPSUBSBZ256rm          ,     X86::VPSUBSBYrm            },
1107   { X86::VPSUBSBZ256rr          ,     X86::VPSUBSBYrr            },
1108   { X86::VPSUBSWZ256rm          ,     X86::VPSUBSWYrm            },
1109   { X86::VPSUBSWZ256rr          ,     X86::VPSUBSWYrr            },
1110   { X86::VPSUBUSBZ256rm         ,     X86::VPSUBUSBYrm           },
1111   { X86::VPSUBUSBZ256rr         ,     X86::VPSUBUSBYrr           },
1112   { X86::VPSUBUSWZ256rm         ,     X86::VPSUBUSWYrm           },
1113   { X86::VPSUBUSWZ256rr         ,     X86::VPSUBUSWYrr           },
1114   { X86::VPSUBWZ256rm           ,     X86::VPSUBWYrm             },
1115   { X86::VPSUBWZ256rr           ,     X86::VPSUBWYrr             },
1116   { X86::VPUNPCKHBWZ256rm       ,     X86::VPUNPCKHBWYrm         },
1117   { X86::VPUNPCKHBWZ256rr       ,     X86::VPUNPCKHBWYrr         },
1118   { X86::VPUNPCKHDQZ256rm       ,     X86::VPUNPCKHDQYrm         },
1119   { X86::VPUNPCKHDQZ256rr       ,     X86::VPUNPCKHDQYrr         },
1120   { X86::VPUNPCKHQDQZ256rm      ,     X86::VPUNPCKHQDQYrm        },
1121   { X86::VPUNPCKHQDQZ256rr      ,     X86::VPUNPCKHQDQYrr        },
1122   { X86::VPUNPCKHWDZ256rm       ,     X86::VPUNPCKHWDYrm         },
1123   { X86::VPUNPCKHWDZ256rr       ,     X86::VPUNPCKHWDYrr         },
1124   { X86::VPUNPCKLBWZ256rm       ,     X86::VPUNPCKLBWYrm         },
1125   { X86::VPUNPCKLBWZ256rr       ,     X86::VPUNPCKLBWYrr         },
1126   { X86::VPUNPCKLDQZ256rm       ,     X86::VPUNPCKLDQYrm         },
1127   { X86::VPUNPCKLDQZ256rr       ,     X86::VPUNPCKLDQYrr         },
1128   { X86::VPUNPCKLQDQZ256rm      ,     X86::VPUNPCKLQDQYrm        },
1129   { X86::VPUNPCKLQDQZ256rr      ,     X86::VPUNPCKLQDQYrr        },
1130   { X86::VPUNPCKLWDZ256rm       ,     X86::VPUNPCKLWDYrm         },
1131   { X86::VPUNPCKLWDZ256rr       ,     X86::VPUNPCKLWDYrr         },
1132   { X86::VPXORDZ256rm           ,     X86::VPXORYrm              },
1133   { X86::VPXORDZ256rr           ,     X86::VPXORYrr              },
1134   { X86::VPXORQZ256rm           ,     X86::VPXORYrm              },
1135   { X86::VPXORQZ256rr           ,     X86::VPXORYrr              },
1136   { X86::VSHUFPDZ256rmi         ,     X86::VSHUFPDYrmi           },
1137   { X86::VSHUFPDZ256rri         ,     X86::VSHUFPDYrri           },
1138   { X86::VSHUFPSZ256rmi         ,     X86::VSHUFPSYrmi           },
1139   { X86::VSHUFPSZ256rri         ,     X86::VSHUFPSYrri           },
1140   { X86::VSQRTPDZ256m           ,     X86::VSQRTPDYm             },
1141   { X86::VSQRTPDZ256r           ,     X86::VSQRTPDYr             },
1142   { X86::VSQRTPSZ256m           ,     X86::VSQRTPSYm             },
1143   { X86::VSQRTPSZ256r           ,     X86::VSQRTPSYr             },
1144   { X86::VSUBPDZ256rm           ,     X86::VSUBPDYrm             },
1145   { X86::VSUBPDZ256rr           ,     X86::VSUBPDYrr             },
1146   { X86::VSUBPSZ256rm           ,     X86::VSUBPSYrm             },
1147   { X86::VSUBPSZ256rr           ,     X86::VSUBPSYrr             },
1148   { X86::VUNPCKHPDZ256rm        ,     X86::VUNPCKHPDYrm          },
1149   { X86::VUNPCKHPDZ256rr        ,     X86::VUNPCKHPDYrr          },
1150   { X86::VUNPCKHPSZ256rm        ,     X86::VUNPCKHPSYrm          },
1151   { X86::VUNPCKHPSZ256rr        ,     X86::VUNPCKHPSYrr          },
1152   { X86::VUNPCKLPDZ256rm        ,     X86::VUNPCKLPDYrm          },
1153   { X86::VUNPCKLPDZ256rr        ,     X86::VUNPCKLPDYrr          },
1154   { X86::VUNPCKLPSZ256rm        ,     X86::VUNPCKLPSYrm          },
1155   { X86::VUNPCKLPSZ256rr        ,     X86::VUNPCKLPSYrr          },
1156   { X86::VXORPDZ256rm           ,     X86::VXORPDYrm             },
1157   { X86::VXORPDZ256rr           ,     X86::VXORPDYrr             },
1158   { X86::VXORPSZ256rm           ,     X86::VXORPSYrm             },
1159   { X86::VXORPSZ256rr           ,     X86::VXORPSYrr             },
1160 };
1161
1162 #endif