Lines Matching refs:SSSE3
3 ; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ssse3 | FileCheck %s --check-prefixes=X64,X64-SSSE3
17 ; X64-SSSE3-LABEL: t:
18 ; X64-SSSE3: # %bb.0:
19 ; X64-SSSE3-NEXT: pshufd {{.*#+}} xmm0 = mem[2,3,2,3]
20 ; X64-SSSE3-NEXT: movd %xmm0, %eax
21 ; X64-SSSE3-NEXT: retq
61 ; X64-SSSE3-LABEL: t3:
62 ; X64-SSSE3: # %bb.0: # %bb
63 ; X64-SSSE3-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
64 ; X64-SSSE3-NEXT: movsd %xmm0, (%rax)
65 ; X64-SSSE3-NEXT: retq
114 ; X64-SSSE3-LABEL: t5:
115 ; X64-SSSE3: # %bb.0:
116 ; X64-SSSE3-NEXT: movaps (%rdi), %xmm0
117 ; X64-SSSE3-NEXT: movhps %xmm0, (%rsi)
118 ; X64-SSSE3-NEXT: retq
152 ; X64-SSSE3-LABEL: t6:
153 ; X64-SSSE3: # %bb.0:
154 ; X64-SSSE3-NEXT: movshdup {{.*#+}} xmm1 = mem[1,1,3,3]
155 ; X64-SSSE3-NEXT: xorps %xmm0, %xmm0
156 ; X64-SSSE3-NEXT: cmpeqss %xmm1, %xmm0
157 ; X64-SSSE3-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
158 ; X64-SSSE3-NEXT: andps %xmm0, %xmm2
159 ; X64-SSSE3-NEXT: andnps %xmm1, %xmm0
160 ; X64-SSSE3-NEXT: orps %xmm2, %xmm0
161 ; X64-SSSE3-NEXT: retq
202 ; X64-SSSE3-LABEL: PR43971:
203 ; X64-SSSE3: # %bb.0: # %entry
204 ; X64-SSSE3-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
205 ; X64-SSSE3-NEXT: xorps %xmm1, %xmm1
206 ; X64-SSSE3-NEXT: cmpltss %xmm0, %xmm1
207 ; X64-SSSE3-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
208 ; X64-SSSE3-NEXT: andps %xmm1, %xmm2
209 ; X64-SSSE3-NEXT: andnps %xmm0, %xmm1
210 ; X64-SSSE3-NEXT: orps %xmm2, %xmm1
211 ; X64-SSSE3-NEXT: movss %xmm1, (%rsi)
212 ; X64-SSSE3-NEXT: retq
251 ; X64-SSSE3-LABEL: PR43971_1:
252 ; X64-SSSE3: # %bb.0: # %entry
253 ; X64-SSSE3-NEXT: movshdup {{.*#+}} xmm1 = mem[1,1,3,3]
254 ; X64-SSSE3-NEXT: xorps %xmm0, %xmm0
255 ; X64-SSSE3-NEXT: cmpeqss %xmm1, %xmm0
256 ; X64-SSSE3-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
257 ; X64-SSSE3-NEXT: andps %xmm0, %xmm2
258 ; X64-SSSE3-NEXT: andnps %xmm1, %xmm0
259 ; X64-SSSE3-NEXT: orps %xmm2, %xmm0
260 ; X64-SSSE3-NEXT: retq
332 ; X64-SSSE3-LABEL: multi_use_load_scalarization:
333 ; X64-SSSE3: # %bb.0:
334 ; X64-SSSE3-NEXT: movl (%rdi), %eax
335 ; X64-SSSE3-NEXT: movdqu (%rdi), %xmm0
336 ; X64-SSSE3-NEXT: pcmpeqd %xmm1, %xmm1
337 ; X64-SSSE3-NEXT: psubd %xmm1, %xmm0
338 ; X64-SSSE3-NEXT: movdqa %xmm0, (%rdi)
339 ; X64-SSSE3-NEXT: retq
367 ; X64-SSSE3-LABEL: multi_use_volatile_load_scalarization:
368 ; X64-SSSE3: # %bb.0:
369 ; X64-SSSE3-NEXT: movdqu (%rdi), %xmm0
370 ; X64-SSSE3-NEXT: pcmpeqd %xmm1, %xmm1
371 ; X64-SSSE3-NEXT: movd %xmm0, %eax
372 ; X64-SSSE3-NEXT: psubd %xmm1, %xmm0
373 ; X64-SSSE3-NEXT: movdqa %xmm0, (%rdi)
374 ; X64-SSSE3-NEXT: retq
437 ; X64-SSSE3-LABEL: main:
438 ; X64-SSSE3: # %bb.0:
439 ; X64-SSSE3-NEXT: pushq %rbp
440 ; X64-SSSE3-NEXT: movq %rsp, %rbp
441 ; X64-SSSE3-NEXT: andq $-32, %rsp
442 ; X64-SSSE3-NEXT: subq $64, %rsp
443 ; X64-SSSE3-NEXT: movdqa zero(%rip), %xmm0
444 ; X64-SSSE3-NEXT: movq n1@GOTPCREL(%rip), %rax
445 ; X64-SSSE3-NEXT: movaps (%rax), %xmm1
446 ; X64-SSSE3-NEXT: movaps 16(%rax), %xmm2
447 ; X64-SSSE3-NEXT: movaps %xmm1, zero(%rip)
448 ; X64-SSSE3-NEXT: movaps %xmm2, zero+16(%rip)
449 ; X64-SSSE3-NEXT: movaps {{.*#+}} xmm1 = [2,2,2,2]
450 ; X64-SSSE3-NEXT: movaps %xmm1, {{[0-9]+}}(%rsp)
451 ; X64-SSSE3-NEXT: movaps %xmm1, (%rsp)
452 ; X64-SSSE3-NEXT: movdqa (%rsp), %xmm1
453 ; X64-SSSE3-NEXT: movaps {{[0-9]+}}(%rsp), %xmm2
454 ; X64-SSSE3-NEXT: pshufd {{.*#+}} xmm2 = xmm0[2,3,2,3]
455 ; X64-SSSE3-NEXT: movd %xmm2, %eax
456 ; X64-SSSE3-NEXT: pshufd {{.*#+}} xmm2 = xmm1[2,3,2,3]
457 ; X64-SSSE3-NEXT: movd %xmm2, %ecx
458 ; X64-SSSE3-NEXT: xorl %edx, %edx
459 ; X64-SSSE3-NEXT: divl %ecx
460 ; X64-SSSE3-NEXT: movl %eax, %ecx
461 ; X64-SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,1]
462 ; X64-SSSE3-NEXT: movd %xmm0, %eax
463 ; X64-SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]
464 ; X64-SSSE3-NEXT: movd %xmm0, %esi
465 ; X64-SSSE3-NEXT: xorl %edx, %edx
466 ; X64-SSSE3-NEXT: divl %esi
467 ; X64-SSSE3-NEXT: addl %ecx, %eax
468 ; X64-SSSE3-NEXT: movq %rbp, %rsp
469 ; X64-SSSE3-NEXT: popq %rbp
470 ; X64-SSSE3-NEXT: retq