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