llvm.org GIT mirror llvm / e6482fa
Merge SSE and AVX shuffle instructions in the comment printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173777 91177308-0d34-0410-b5e6-96231b3b80d8 Craig Topper 7 years ago
2 changed file(s) with 270 addition(s) and 129 deletion(s). Raw diff Collapse all Expand all
3333
3434 switch (MI->getOpcode()) {
3535 case X86::INSERTPSrr:
36 Src1Name = getRegName(MI->getOperand(0).getReg());
36 case X86::VINSERTPSrr:
37 DestName = getRegName(MI->getOperand(0).getReg());
38 Src1Name = getRegName(MI->getOperand(1).getReg());
3739 Src2Name = getRegName(MI->getOperand(2).getReg());
3840 DecodeINSERTPSMask(MI->getOperand(3).getImm(), ShuffleMask);
3941 break;
40 case X86::VINSERTPSrr:
41 DestName = getRegName(MI->getOperand(0).getReg());
42 Src1Name = getRegName(MI->getOperand(1).getReg());
43 Src2Name = getRegName(MI->getOperand(2).getReg());
44 DecodeINSERTPSMask(MI->getOperand(3).getImm(), ShuffleMask);
45 break;
4642
4743 case X86::MOVLHPSrr:
48 Src2Name = getRegName(MI->getOperand(2).getReg());
49 Src1Name = getRegName(MI->getOperand(0).getReg());
44 case X86::VMOVLHPSrr:
45 Src2Name = getRegName(MI->getOperand(2).getReg());
46 Src1Name = getRegName(MI->getOperand(1).getReg());
47 DestName = getRegName(MI->getOperand(0).getReg());
5048 DecodeMOVLHPSMask(2, ShuffleMask);
5149 break;
52 case X86::VMOVLHPSrr:
53 Src2Name = getRegName(MI->getOperand(2).getReg());
54 Src1Name = getRegName(MI->getOperand(1).getReg());
55 DestName = getRegName(MI->getOperand(0).getReg());
56 DecodeMOVLHPSMask(2, ShuffleMask);
57 break;
5850
5951 case X86::MOVHLPSrr:
60 Src2Name = getRegName(MI->getOperand(2).getReg());
61 Src1Name = getRegName(MI->getOperand(0).getReg());
62 DecodeMOVHLPSMask(2, ShuffleMask);
63 break;
6452 case X86::VMOVHLPSrr:
6553 Src2Name = getRegName(MI->getOperand(2).getReg());
6654 Src1Name = getRegName(MI->getOperand(1).getReg());
153141 break;
154142
155143 case X86::PUNPCKHBWrr:
144 case X86::VPUNPCKHBWrr:
156145 Src2Name = getRegName(MI->getOperand(2).getReg());
157146 // FALL THROUGH.
158147 case X86::PUNPCKHBWrm:
159 Src1Name = getRegName(MI->getOperand(0).getReg());
148 case X86::VPUNPCKHBWrm:
149 Src1Name = getRegName(MI->getOperand(1).getReg());
150 DestName = getRegName(MI->getOperand(0).getReg());
160151 DecodeUNPCKHMask(MVT::v16i8, ShuffleMask);
161152 break;
162 case X86::VPUNPCKHBWrr:
163 Src2Name = getRegName(MI->getOperand(2).getReg());
164 // FALL THROUGH.
165 case X86::VPUNPCKHBWrm:
166 Src1Name = getRegName(MI->getOperand(1).getReg());
167 DestName = getRegName(MI->getOperand(0).getReg());
168 DecodeUNPCKHMask(MVT::v16i8, ShuffleMask);
169 break;
170153 case X86::VPUNPCKHBWYrr:
171154 Src2Name = getRegName(MI->getOperand(2).getReg());
172155 // FALL THROUGH.
176159 DecodeUNPCKHMask(MVT::v32i8, ShuffleMask);
177160 break;
178161 case X86::PUNPCKHWDrr:
162 case X86::VPUNPCKHWDrr:
179163 Src2Name = getRegName(MI->getOperand(2).getReg());
180164 // FALL THROUGH.
181165 case X86::PUNPCKHWDrm:
182 Src1Name = getRegName(MI->getOperand(0).getReg());
166 case X86::VPUNPCKHWDrm:
167 Src1Name = getRegName(MI->getOperand(1).getReg());
168 DestName = getRegName(MI->getOperand(0).getReg());
183169 DecodeUNPCKHMask(MVT::v8i16, ShuffleMask);
184170 break;
185 case X86::VPUNPCKHWDrr:
186 Src2Name = getRegName(MI->getOperand(2).getReg());
187 // FALL THROUGH.
188 case X86::VPUNPCKHWDrm:
189 Src1Name = getRegName(MI->getOperand(1).getReg());
190 DestName = getRegName(MI->getOperand(0).getReg());
191 DecodeUNPCKHMask(MVT::v8i16, ShuffleMask);
192 break;
193171 case X86::VPUNPCKHWDYrr:
194172 Src2Name = getRegName(MI->getOperand(2).getReg());
195173 // FALL THROUGH.
199177 DecodeUNPCKHMask(MVT::v16i16, ShuffleMask);
200178 break;
201179 case X86::PUNPCKHDQrr:
180 case X86::VPUNPCKHDQrr:
202181 Src2Name = getRegName(MI->getOperand(2).getReg());
203182 // FALL THROUGH.
204183 case X86::PUNPCKHDQrm:
205 Src1Name = getRegName(MI->getOperand(0).getReg());
184 case X86::VPUNPCKHDQrm:
185 Src1Name = getRegName(MI->getOperand(1).getReg());
186 DestName = getRegName(MI->getOperand(0).getReg());
206187 DecodeUNPCKHMask(MVT::v4i32, ShuffleMask);
207188 break;
208 case X86::VPUNPCKHDQrr:
209 Src2Name = getRegName(MI->getOperand(2).getReg());
210 // FALL THROUGH.
211 case X86::VPUNPCKHDQrm:
212 Src1Name = getRegName(MI->getOperand(1).getReg());
213 DestName = getRegName(MI->getOperand(0).getReg());
214 DecodeUNPCKHMask(MVT::v4i32, ShuffleMask);
215 break;
216189 case X86::VPUNPCKHDQYrr:
217190 Src2Name = getRegName(MI->getOperand(2).getReg());
218191 // FALL THROUGH.
222195 DecodeUNPCKHMask(MVT::v8i32, ShuffleMask);
223196 break;
224197 case X86::PUNPCKHQDQrr:
198 case X86::VPUNPCKHQDQrr:
225199 Src2Name = getRegName(MI->getOperand(2).getReg());
226200 // FALL THROUGH.
227201 case X86::PUNPCKHQDQrm:
228 Src1Name = getRegName(MI->getOperand(0).getReg());
202 case X86::VPUNPCKHQDQrm:
203 Src1Name = getRegName(MI->getOperand(1).getReg());
204 DestName = getRegName(MI->getOperand(0).getReg());
229205 DecodeUNPCKHMask(MVT::v2i64, ShuffleMask);
230206 break;
231 case X86::VPUNPCKHQDQrr:
232 Src2Name = getRegName(MI->getOperand(2).getReg());
233 // FALL THROUGH.
234 case X86::VPUNPCKHQDQrm:
235 Src1Name = getRegName(MI->getOperand(1).getReg());
236 DestName = getRegName(MI->getOperand(0).getReg());
237 DecodeUNPCKHMask(MVT::v2i64, ShuffleMask);
238 break;
239207 case X86::VPUNPCKHQDQYrr:
240208 Src2Name = getRegName(MI->getOperand(2).getReg());
241209 // FALL THROUGH.
246214 break;
247215
248216 case X86::PUNPCKLBWrr:
217 case X86::VPUNPCKLBWrr:
249218 Src2Name = getRegName(MI->getOperand(2).getReg());
250219 // FALL THROUGH.
251220 case X86::PUNPCKLBWrm:
252 Src1Name = getRegName(MI->getOperand(0).getReg());
221 case X86::VPUNPCKLBWrm:
222 Src1Name = getRegName(MI->getOperand(1).getReg());
223 DestName = getRegName(MI->getOperand(0).getReg());
253224 DecodeUNPCKLMask(MVT::v16i8, ShuffleMask);
254225 break;
255 case X86::VPUNPCKLBWrr:
256 Src2Name = getRegName(MI->getOperand(2).getReg());
257 // FALL THROUGH.
258 case X86::VPUNPCKLBWrm:
259 Src1Name = getRegName(MI->getOperand(1).getReg());
260 DestName = getRegName(MI->getOperand(0).getReg());
261 DecodeUNPCKLMask(MVT::v16i8, ShuffleMask);
262 break;
263226 case X86::VPUNPCKLBWYrr:
264227 Src2Name = getRegName(MI->getOperand(2).getReg());
265228 // FALL THROUGH.
269232 DecodeUNPCKLMask(MVT::v32i8, ShuffleMask);
270233 break;
271234 case X86::PUNPCKLWDrr:
235 case X86::VPUNPCKLWDrr:
272236 Src2Name = getRegName(MI->getOperand(2).getReg());
273237 // FALL THROUGH.
274238 case X86::PUNPCKLWDrm:
275 Src1Name = getRegName(MI->getOperand(0).getReg());
239 case X86::VPUNPCKLWDrm:
240 Src1Name = getRegName(MI->getOperand(1).getReg());
241 DestName = getRegName(MI->getOperand(0).getReg());
276242 DecodeUNPCKLMask(MVT::v8i16, ShuffleMask);
277243 break;
278 case X86::VPUNPCKLWDrr:
279 Src2Name = getRegName(MI->getOperand(2).getReg());
280 // FALL THROUGH.
281 case X86::VPUNPCKLWDrm:
282 Src1Name = getRegName(MI->getOperand(1).getReg());
283 DestName = getRegName(MI->getOperand(0).getReg());
284 DecodeUNPCKLMask(MVT::v8i16, ShuffleMask);
285 break;
286244 case X86::VPUNPCKLWDYrr:
287245 Src2Name = getRegName(MI->getOperand(2).getReg());
288246 // FALL THROUGH.
292250 DecodeUNPCKLMask(MVT::v16i16, ShuffleMask);
293251 break;
294252 case X86::PUNPCKLDQrr:
253 case X86::VPUNPCKLDQrr:
295254 Src2Name = getRegName(MI->getOperand(2).getReg());
296255 // FALL THROUGH.
297256 case X86::PUNPCKLDQrm:
298 Src1Name = getRegName(MI->getOperand(0).getReg());
257 case X86::VPUNPCKLDQrm:
258 Src1Name = getRegName(MI->getOperand(1).getReg());
259 DestName = getRegName(MI->getOperand(0).getReg());
299260 DecodeUNPCKLMask(MVT::v4i32, ShuffleMask);
300261 break;
301 case X86::VPUNPCKLDQrr:
302 Src2Name = getRegName(MI->getOperand(2).getReg());
303 // FALL THROUGH.
304 case X86::VPUNPCKLDQrm:
305 Src1Name = getRegName(MI->getOperand(1).getReg());
306 DestName = getRegName(MI->getOperand(0).getReg());
307 DecodeUNPCKLMask(MVT::v4i32, ShuffleMask);
308 break;
309262 case X86::VPUNPCKLDQYrr:
310263 Src2Name = getRegName(MI->getOperand(2).getReg());
311264 // FALL THROUGH.
315268 DecodeUNPCKLMask(MVT::v8i32, ShuffleMask);
316269 break;
317270 case X86::PUNPCKLQDQrr:
271 case X86::VPUNPCKLQDQrr:
318272 Src2Name = getRegName(MI->getOperand(2).getReg());
319273 // FALL THROUGH.
320274 case X86::PUNPCKLQDQrm:
321 Src1Name = getRegName(MI->getOperand(0).getReg());
275 case X86::VPUNPCKLQDQrm:
276 Src1Name = getRegName(MI->getOperand(1).getReg());
277 DestName = getRegName(MI->getOperand(0).getReg());
322278 DecodeUNPCKLMask(MVT::v2i64, ShuffleMask);
323279 break;
324 case X86::VPUNPCKLQDQrr:
325 Src2Name = getRegName(MI->getOperand(2).getReg());
326 // FALL THROUGH.
327 case X86::VPUNPCKLQDQrm:
328 Src1Name = getRegName(MI->getOperand(1).getReg());
329 DestName = getRegName(MI->getOperand(0).getReg());
330 DecodeUNPCKLMask(MVT::v2i64, ShuffleMask);
331 break;
332280 case X86::VPUNPCKLQDQYrr:
333281 Src2Name = getRegName(MI->getOperand(2).getReg());
334282 // FALL THROUGH.
339287 break;
340288
341289 case X86::SHUFPDrri:
290 case X86::VSHUFPDrri:
342291 Src2Name = getRegName(MI->getOperand(2).getReg());
343292 // FALL THROUGH.
344293 case X86::SHUFPDrmi:
345 DecodeSHUFPMask(MVT::v2f64, MI->getOperand(MI->getNumOperands()-1).getImm(),
346 ShuffleMask);
347 Src1Name = getRegName(MI->getOperand(0).getReg());
348 break;
349 case X86::VSHUFPDrri:
350 Src2Name = getRegName(MI->getOperand(2).getReg());
351 // FALL THROUGH.
352294 case X86::VSHUFPDrmi:
353295 DecodeSHUFPMask(MVT::v2f64, MI->getOperand(MI->getNumOperands()-1).getImm(),
354296 ShuffleMask);
366308 break;
367309
368310 case X86::SHUFPSrri:
311 case X86::VSHUFPSrri:
369312 Src2Name = getRegName(MI->getOperand(2).getReg());
370313 // FALL THROUGH.
371314 case X86::SHUFPSrmi:
372 DecodeSHUFPMask(MVT::v4f32, MI->getOperand(MI->getNumOperands()-1).getImm(),
373 ShuffleMask);
374 Src1Name = getRegName(MI->getOperand(0).getReg());
375 break;
376 case X86::VSHUFPSrri:
377 Src2Name = getRegName(MI->getOperand(2).getReg());
378 // FALL THROUGH.
379315 case X86::VSHUFPSrmi:
380316 DecodeSHUFPMask(MVT::v4f32, MI->getOperand(MI->getNumOperands()-1).getImm(),
381317 ShuffleMask);
393329 break;
394330
395331 case X86::UNPCKLPDrr:
332 case X86::VUNPCKLPDrr:
396333 Src2Name = getRegName(MI->getOperand(2).getReg());
397334 // FALL THROUGH.
398335 case X86::UNPCKLPDrm:
399 DecodeUNPCKLMask(MVT::v2f64, ShuffleMask);
400 Src1Name = getRegName(MI->getOperand(0).getReg());
401 break;
402 case X86::VUNPCKLPDrr:
403 Src2Name = getRegName(MI->getOperand(2).getReg());
404 // FALL THROUGH.
405336 case X86::VUNPCKLPDrm:
406337 DecodeUNPCKLMask(MVT::v2f64, ShuffleMask);
407338 Src1Name = getRegName(MI->getOperand(1).getReg());
416347 DestName = getRegName(MI->getOperand(0).getReg());
417348 break;
418349 case X86::UNPCKLPSrr:
350 case X86::VUNPCKLPSrr:
419351 Src2Name = getRegName(MI->getOperand(2).getReg());
420352 // FALL THROUGH.
421353 case X86::UNPCKLPSrm:
422 DecodeUNPCKLMask(MVT::v4f32, ShuffleMask);
423 Src1Name = getRegName(MI->getOperand(0).getReg());
424 break;
425 case X86::VUNPCKLPSrr:
426 Src2Name = getRegName(MI->getOperand(2).getReg());
427 // FALL THROUGH.
428354 case X86::VUNPCKLPSrm:
429355 DecodeUNPCKLMask(MVT::v4f32, ShuffleMask);
430356 Src1Name = getRegName(MI->getOperand(1).getReg());
439365 DestName = getRegName(MI->getOperand(0).getReg());
440366 break;
441367 case X86::UNPCKHPDrr:
368 case X86::VUNPCKHPDrr:
442369 Src2Name = getRegName(MI->getOperand(2).getReg());
443370 // FALL THROUGH.
444371 case X86::UNPCKHPDrm:
445 DecodeUNPCKHMask(MVT::v2f64, ShuffleMask);
446 Src1Name = getRegName(MI->getOperand(0).getReg());
447 break;
448 case X86::VUNPCKHPDrr:
449 Src2Name = getRegName(MI->getOperand(2).getReg());
450 // FALL THROUGH.
451372 case X86::VUNPCKHPDrm:
452373 DecodeUNPCKHMask(MVT::v2f64, ShuffleMask);
453374 Src1Name = getRegName(MI->getOperand(1).getReg());
462383 DestName = getRegName(MI->getOperand(0).getReg());
463384 break;
464385 case X86::UNPCKHPSrr:
386 case X86::VUNPCKHPSrr:
465387 Src2Name = getRegName(MI->getOperand(2).getReg());
466388 // FALL THROUGH.
467389 case X86::UNPCKHPSrm:
468 DecodeUNPCKHMask(MVT::v4f32, ShuffleMask);
469 Src1Name = getRegName(MI->getOperand(0).getReg());
470 break;
471 case X86::VUNPCKHPSrr:
472 Src2Name = getRegName(MI->getOperand(2).getReg());
473 // FALL THROUGH.
474390 case X86::VUNPCKHPSrm:
475391 DecodeUNPCKHMask(MVT::v4f32, ShuffleMask);
476392 Src1Name = getRegName(MI->getOperand(1).getReg());
4343 # CHECK: ymm2 = ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
4444 vpalignr $0, (%rax), %ymm1, %ymm2
4545 # CHECK: ymm2 = mem[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
46
47 pshufd $27, %xmm0, %xmm1
48 # CHECK: xmm1 = xmm0[3,2,1,0]
49 pshufd $27, (%rax), %xmm1
50 # CHECK: xmm1 = mem[3,2,1,0]
51
52 vpshufd $27, %xmm0, %xmm1
53 # CHECK: xmm1 = xmm0[3,2,1,0]
54 vpshufd $27, (%rax), %xmm1
55 # CHECK: xmm1 = mem[3,2,1,0]
56
57 vpshufd $27, %ymm0, %ymm1
58 # CHECK: ymm1 = ymm0[3,2,1,0,7,6,5,4]
59 vpshufd $27, (%rax), %ymm1
60 # CHECK: ymm1 = mem[3,2,1,0,7,6,5,4]
61
62 punpcklbw %xmm0, %xmm1
63 # CHECK: xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
64 punpcklbw (%rax), %xmm1
65 # CHECK: xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3],xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]
66
67 vpunpcklbw %xmm0, %xmm1, %xmm2
68 # CHECK: xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
69 vpunpcklbw (%rax), %xmm1, %xmm2
70 # CHECK: xmm2 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3],xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]
71
72 vpunpcklbw %ymm0, %ymm1, %ymm2
73 # CHECK: ymm2 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[4],ymm0[4],ymm1[5],ymm0[5],ymm1[6],ymm0[6],ymm1[7],ymm0[7],ymm1[16],ymm0[16],ymm1[17],ymm0[17],ymm1[18],ymm0[18],ymm1[19],ymm0[19],ymm1[20],ymm0[20],ymm1[21],ymm0[21],ymm1[22],ymm0[22],ymm1[23],ymm0[23]
74 vpunpcklbw (%rax), %ymm1, %ymm2
75 # CHECK: ymm2 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[2],mem[2],ymm1[3],mem[3],ymm1[4],mem[4],ymm1[5],mem[5],ymm1[6],mem[6],ymm1[7],mem[7],ymm1[16],mem[16],ymm1[17],mem[17],ymm1[18],mem[18],ymm1[19],mem[19],ymm1[20],mem[20],ymm1[21],mem[21],ymm1[22],mem[22],ymm1[23],mem[23]
76
77 punpckhbw %xmm0, %xmm1
78 # CHECK: xmm1 = xmm1[8],xmm0[8],xmm1[9],xmm0[9],xmm1[10],xmm0[10],xmm1[11],xmm0[11],xmm1[12],xmm0[12],xmm1[13],xmm0[13],xmm1[14],xmm0[14],xmm1[15],xmm0[15]
79 punpckhbw (%rax), %xmm1
80 # CHECK: xmm1 = xmm1[8],mem[8],xmm1[9],mem[9],xmm1[10],mem[10],xmm1[11],mem[11],xmm1[12],mem[12],xmm1[13],mem[13],xmm1[14],mem[14],xmm1[15],mem[15]
81
82 vpunpckhbw %xmm0, %xmm1, %xmm2
83 # CHECK: xmm2 = xmm1[8],xmm0[8],xmm1[9],xmm0[9],xmm1[10],xmm0[10],xmm1[11],xmm0[11],xmm1[12],xmm0[12],xmm1[13],xmm0[13],xmm1[14],xmm0[14],xmm1[15],xmm0[15]
84 vpunpckhbw (%rax), %xmm1, %xmm2
85 # CHECK: xmm2 = xmm1[8],mem[8],xmm1[9],mem[9],xmm1[10],mem[10],xmm1[11],mem[11],xmm1[12],mem[12],xmm1[13],mem[13],xmm1[14],mem[14],xmm1[15],mem[15]
86
87 vpunpckhbw %ymm0, %ymm1, %ymm2
88 # CHECK: ymm2 = ymm1[8],ymm0[8],ymm1[9],ymm0[9],ymm1[10],ymm0[10],ymm1[11],ymm0[11],ymm1[12],ymm0[12],ymm1[13],ymm0[13],ymm1[14],ymm0[14],ymm1[15],ymm0[15],ymm1[24],ymm0[24],ymm1[25],ymm0[25],ymm1[26],ymm0[26],ymm1[27],ymm0[27],ymm1[28],ymm0[28],ymm1[29],ymm0[29],ymm1[30],ymm0[30],ymm1[31],ymm0[31]
89 vpunpckhbw (%rax), %ymm1, %ymm2
90 # CHECK: ymm2 = ymm1[8],mem[8],ymm1[9],mem[9],ymm1[10],mem[10],ymm1[11],mem[11],ymm1[12],mem[12],ymm1[13],mem[13],ymm1[14],mem[14],ymm1[15],mem[15],ymm1[24],mem[24],ymm1[25],mem[25],ymm1[26],mem[26],ymm1[27],mem[27],ymm1[28],mem[28],ymm1[29],mem[29],ymm1[30],mem[30],ymm1[31],mem[31]
91
92 punpcklwd %xmm0, %xmm1
93 # CHECK: xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]
94 punpcklwd (%rax), %xmm1
95 # CHECK: xmm1 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]
96
97 vpunpcklwd %xmm0, %xmm1, %xmm2
98 # CHECK: xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3]
99 vpunpcklwd (%rax), %xmm1, %xmm2
100 # CHECK: xmm2 = xmm1[0],mem[0],xmm1[1],mem[1],xmm1[2],mem[2],xmm1[3],mem[3]
101
102 vpunpcklwd %ymm0, %ymm1, %ymm2
103 # CHECK: ymm2 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[8],ymm0[8],ymm1[9],ymm0[9],ymm1[10],ymm0[10],ymm1[11],ymm0[11]
104 vpunpcklwd (%rax), %ymm1, %ymm2
105 # CHECK: ymm2 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[2],mem[2],ymm1[3],mem[3],ymm1[8],mem[8],ymm1[9],mem[9],ymm1[10],mem[10],ymm1[11],mem[11]
106
107 punpckhwd %xmm0, %xmm1
108 # CHECK: xmm1 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
109 punpckhwd (%rax), %xmm1
110 # CHECK: xmm1 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]
111
112 vpunpckhwd %xmm0, %xmm1, %xmm2
113 # CHECK: xmm2 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
114 vpunpckhwd (%rax), %xmm1, %xmm2
115 # CHECK: xmm2 = xmm1[4],mem[4],xmm1[5],mem[5],xmm1[6],mem[6],xmm1[7],mem[7]
116
117 vpunpckhwd %ymm0, %ymm1, %ymm2
118 # CHECK: ymm2 = ymm1[4],ymm0[4],ymm1[5],ymm0[5],ymm1[6],ymm0[6],ymm1[7],ymm0[7],ymm1[12],ymm0[12],ymm1[13],ymm0[13],ymm1[14],ymm0[14],ymm1[15],ymm0[15]
119 vpunpckhwd (%rax), %ymm1, %ymm2
120 # CHECK: ymm2 = ymm1[4],mem[4],ymm1[5],mem[5],ymm1[6],mem[6],ymm1[7],mem[7],ymm1[12],mem[12],ymm1[13],mem[13],ymm1[14],mem[14],ymm1[15],mem[15]
121
122 punpckldq %xmm0, %xmm1
123 # CHECK: xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
124 punpckldq (%rax), %xmm1
125 # CHECK: xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
126
127 vpunpckldq %xmm0, %xmm1, %xmm2
128 # CHECK: xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
129 vpunpckldq (%rax), %xmm1, %xmm2
130 # CHECK: xmm2 = xmm1[0],mem[0],xmm1[1],mem[1]
131
132 vpunpckldq %ymm0, %ymm1, %ymm2
133 # CHECK: ymm2 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
134 vpunpckldq (%rax), %ymm1, %ymm2
135 # CHECK: ymm2 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[4],mem[4],ymm1[5],mem[5]
136
137 punpckhdq %xmm0, %xmm1
138 # CHECK: xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
139 punpckhdq (%rax), %xmm1
140 # CHECK: xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
141
142 vpunpckhdq %xmm0, %xmm1, %xmm2
143 # CHECK: xmm2 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
144 vpunpckhdq (%rax), %xmm1, %xmm2
145 # CHECK: xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
146
147 vpunpckhdq %ymm0, %ymm1, %ymm2
148 # CHECK: ymm2 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
149 vpunpckhdq (%rax), %ymm1, %ymm2
150 # CHECK: ymm2 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
151
152 punpcklqdq %xmm0, %xmm1
153 # CHECK: xmm1 = xmm1[0],xmm0[0]
154 punpcklqdq (%rax), %xmm1
155 # CHECK: xmm1 = xmm1[0],mem[0]
156
157 vpunpcklqdq %xmm0, %xmm1, %xmm2
158 # CHECK: xmm2 = xmm1[0],xmm0[0]
159 vpunpcklqdq (%rax), %xmm1, %xmm2
160 # CHECK: xmm2 = xmm1[0],mem[0]
161
162 vpunpcklqdq %ymm0, %ymm1, %ymm2
163 # CHECK: ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
164 vpunpcklqdq (%rax), %ymm1, %ymm2
165 # CHECK: ymm2 = ymm1[0],mem[0],ymm1[2],mem[2]
166
167 punpckhqdq %xmm0, %xmm1
168 # CHECK: xmm1 = xmm1[1],xmm0[1]
169 punpckhqdq (%rax), %xmm1
170 # CHECK: xmm1 = xmm1[1],mem[1]
171
172 vpunpckhqdq %xmm0, %xmm1, %xmm2
173 # CHECK: xmm2 = xmm1[1],xmm0[1]
174 vpunpckhqdq (%rax), %xmm1, %xmm2
175 # CHECK: xmm2 = xmm1[1],mem[1]
176
177 vpunpckhqdq %ymm0, %ymm1, %ymm2
178 # CHECK: ymm2 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
179 vpunpckhqdq (%rax), %ymm1, %ymm2
180 # CHECK: ymm2 = ymm1[1],mem[1],ymm1[3],mem[3]
181
182 unpcklps %xmm0, %xmm1
183 # CHECK: xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
184 unpcklps (%rax), %xmm1
185 # CHECK: xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
186
187 vunpcklps %xmm0, %xmm1, %xmm2
188 # CHECK: xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
189 vunpcklps (%rax), %xmm1, %xmm2
190 # CHECK: xmm2 = xmm1[0],mem[0],xmm1[1],mem[1]
191
192 vunpcklps %ymm0, %ymm1, %ymm2
193 # CHECK: ymm2 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
194 vunpcklps (%rax), %ymm1, %ymm2
195 # CHECK: ymm2 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[4],mem[4],ymm1[5],mem[5]
196
197 unpckhps %xmm0, %xmm1
198 # CHECK: xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
199 unpckhps (%rax), %xmm1
200 # CHECK: xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
201
202 vunpckhps %xmm0, %xmm1, %xmm2
203 # CHECK: xmm2 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
204 vunpckhps (%rax), %xmm1, %xmm2
205 # CHECK: xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
206
207 vunpckhps %ymm0, %ymm1, %ymm2
208 # CHECK: ymm2 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
209 vunpckhps (%rax), %ymm1, %ymm2
210 # CHECK: ymm2 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
211
212 unpcklpd %xmm0, %xmm1
213 # CHECK: xmm1 = xmm1[0],xmm0[0]
214 unpcklpd (%rax), %xmm1
215 # CHECK: xmm1 = xmm1[0],mem[0]
216
217 vunpcklpd %xmm0, %xmm1, %xmm2
218 # CHECK: xmm2 = xmm1[0],xmm0[0]
219 vunpcklpd (%rax), %xmm1, %xmm2
220 # CHECK: xmm2 = xmm1[0],mem[0]
221
222 vunpcklpd %ymm0, %ymm1, %ymm2
223 # CHECK: ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
224 vunpcklpd (%rax), %ymm1, %ymm2
225 # CHECK: ymm2 = ymm1[0],mem[0],ymm1[2],mem[2]
226
227 unpckhpd %xmm0, %xmm1
228 # CHECK: xmm1 = xmm1[1],xmm0[1]
229 unpckhpd (%rax), %xmm1
230 # CHECK: xmm1 = xmm1[1],mem[1]
231
232 vunpckhpd %xmm0, %xmm1, %xmm2
233 # CHECK: xmm2 = xmm1[1],xmm0[1]
234 vunpckhpd (%rax), %xmm1, %xmm2
235 # CHECK: xmm2 = xmm1[1],mem[1]
236
237 vunpckhpd %ymm0, %ymm1, %ymm2
238 # CHECK: ymm2 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
239 vunpckhpd (%rax), %ymm1, %ymm2
240 # CHECK: ymm2 = ymm1[1],mem[1],ymm1[3],mem[3]
241
242 shufps $27, %xmm0, %xmm1
243 # CHECK: xmm1 = xmm1[3,2],xmm0[1,0]
244 shufps $27, (%rax), %xmm1
245 # CHECK: xmm1 = xmm1[3,2],mem[1,0]
246
247 vshufps $27, %xmm0, %xmm1, %xmm2
248 # CHECK: xmm2 = xmm1[3,2],xmm0[1,0]
249 vshufps $27, (%rax), %xmm1, %xmm2
250 # CHECK: xmm2 = xmm1[3,2],mem[1,0]
251
252 vshufps $27, %ymm0, %ymm1, %ymm2
253 # CHECK: ymm2 = ymm1[3,2],ymm0[1,0],ymm1[7,6],ymm0[5,4]
254 vshufps $27, (%rax), %ymm1, %ymm2
255 # CHECK: ymm2 = ymm1[3,2],mem[1,0],ymm1[7,6],mem[5,4]
256
257 shufpd $3, %xmm0, %xmm1
258 # CHECK: xmm1 = xmm1[1],xmm0[1]
259 shufpd $3, (%rax), %xmm1
260 # CHECK: xmm1 = xmm1[1],mem[1]
261
262 vshufpd $3, %xmm0, %xmm1, %xmm2
263 # CHECK: xmm2 = xmm1[1],xmm0[1]
264 vshufpd $3, (%rax), %xmm1, %xmm2
265 # CHECK: xmm2 = xmm1[1],mem[1]
266
267 vshufpd $11, %ymm0, %ymm1, %ymm2
268 # CHECK: ymm2 = ymm1[1],ymm0[1],ymm1[2],ymm0[3]
269 vshufpd $11, (%rax), %ymm1, %ymm2
270 # CHECK: ymm2 = ymm1[1],mem[1],ymm1[2],mem[3]