Lines Matching refs:SSSE3
3 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+ssse3 | FileCheck %s --check-prefixes=SSSE3
27 ; SSSE3-LABEL: dot3_float4:
28 ; SSSE3: # %bb.0:
29 ; SSSE3-NEXT: movups (%rdi), %xmm0
30 ; SSSE3-NEXT: movups (%rsi), %xmm1
31 ; SSSE3-NEXT: mulps %xmm0, %xmm1
32 ; SSSE3-NEXT: movshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
33 ; SSSE3-NEXT: addss %xmm1, %xmm0
34 ; SSSE3-NEXT: movhlps {{.*#+}} xmm1 = xmm1[1,1]
35 ; SSSE3-NEXT: addss %xmm1, %xmm0
36 ; SSSE3-NEXT: retq
82 ; SSSE3-LABEL: dot3_float4_as_float3:
83 ; SSSE3: # %bb.0:
84 ; SSSE3-NEXT: movups (%rdi), %xmm0
85 ; SSSE3-NEXT: movups (%rsi), %xmm1
86 ; SSSE3-NEXT: mulps %xmm0, %xmm1
87 ; SSSE3-NEXT: movshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
88 ; SSSE3-NEXT: addss %xmm1, %xmm0
89 ; SSSE3-NEXT: movhlps {{.*#+}} xmm1 = xmm1[1,1]
90 ; SSSE3-NEXT: addss %xmm1, %xmm0
91 ; SSSE3-NEXT: retq
145 ; SSSE3-LABEL: dot3_float3:
146 ; SSSE3: # %bb.0:
147 ; SSSE3-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
148 ; SSSE3-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
149 ; SSSE3-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,0],xmm0[3,0]
150 ; SSSE3-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2]
151 ; SSSE3-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
152 ; SSSE3-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
153 ; SSSE3-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,0],xmm1[3,0]
154 ; SSSE3-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,1],xmm2[0,2]
155 ; SSSE3-NEXT: mulps %xmm0, %xmm1
156 ; SSSE3-NEXT: movshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
157 ; SSSE3-NEXT: addss %xmm1, %xmm0
158 ; SSSE3-NEXT: movhlps {{.*#+}} xmm1 = xmm1[1,1]
159 ; SSSE3-NEXT: addss %xmm1, %xmm0
160 ; SSSE3-NEXT: retq
212 ; SSSE3-LABEL: dot3_float2_float:
213 ; SSSE3: # %bb.0:
214 ; SSSE3-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
215 ; SSSE3-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
216 ; SSSE3-NEXT: mulps %xmm0, %xmm1
217 ; SSSE3-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
218 ; SSSE3-NEXT: mulss 8(%rsi), %xmm2
219 ; SSSE3-NEXT: movshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
220 ; SSSE3-NEXT: addss %xmm1, %xmm0
221 ; SSSE3-NEXT: addss %xmm2, %xmm0
222 ; SSSE3-NEXT: retq
275 ; SSSE3-LABEL: dot3_float_float2:
276 ; SSSE3: # %bb.0:
277 ; SSSE3-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
278 ; SSSE3-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
279 ; SSSE3-NEXT: movsd {{.*#+}} xmm2 = mem[0],zero
280 ; SSSE3-NEXT: mulps %xmm1, %xmm2
281 ; SSSE3-NEXT: mulss (%rsi), %xmm0
282 ; SSSE3-NEXT: movshdup {{.*#+}} xmm1 = xmm2[1,1,3,3]
283 ; SSSE3-NEXT: addss %xmm2, %xmm0
284 ; SSSE3-NEXT: addss %xmm1, %xmm0
285 ; SSSE3-NEXT: retq
340 ; SSSE3-LABEL: dot2_float4:
341 ; SSSE3: # %bb.0:
342 ; SSSE3-NEXT: movups (%rdi), %xmm0
343 ; SSSE3-NEXT: movups (%rsi), %xmm1
344 ; SSSE3-NEXT: mulps %xmm0, %xmm1
345 ; SSSE3-NEXT: movshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
346 ; SSSE3-NEXT: addss %xmm1, %xmm0
347 ; SSSE3-NEXT: retq
385 ; SSSE3-LABEL: dot2_float2:
386 ; SSSE3: # %bb.0:
387 ; SSSE3-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
388 ; SSSE3-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero
389 ; SSSE3-NEXT: mulps %xmm0, %xmm1
390 ; SSSE3-NEXT: movshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
391 ; SSSE3-NEXT: addss %xmm1, %xmm0
392 ; SSSE3-NEXT: retq