Lines Matching refs:SSE

2 …llc < %s -mtriple=i686-unknown-unknown -mattr=+sse2 -O3 | FileCheck %s --check-prefixes=SSE,SSE-X86
3 …c < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 -O3 | FileCheck %s --check-prefixes=SSE,SSE-X64
27 ; SSE-LABEL: f1:
28 ; SSE: # %bb.0:
29 ; SSE-NEXT: addpd %xmm1, %xmm0
30 ; SSE-NEXT: ret{{[l|q]}}
43 ; SSE-LABEL: f2:
44 ; SSE: # %bb.0:
45 ; SSE-NEXT: addps %xmm1, %xmm0
46 ; SSE-NEXT: ret{{[l|q]}}
59 ; SSE-LABEL: f3:
60 ; SSE: # %bb.0:
61 ; SSE-NEXT: subpd %xmm1, %xmm0
62 ; SSE-NEXT: ret{{[l|q]}}
75 ; SSE-LABEL: f4:
76 ; SSE: # %bb.0:
77 ; SSE-NEXT: subps %xmm1, %xmm0
78 ; SSE-NEXT: ret{{[l|q]}}
91 ; SSE-LABEL: f5:
92 ; SSE: # %bb.0:
93 ; SSE-NEXT: mulpd %xmm1, %xmm0
94 ; SSE-NEXT: ret{{[l|q]}}
107 ; SSE-LABEL: f6:
108 ; SSE: # %bb.0:
109 ; SSE-NEXT: mulps %xmm1, %xmm0
110 ; SSE-NEXT: ret{{[l|q]}}
123 ; SSE-LABEL: f7:
124 ; SSE: # %bb.0:
125 ; SSE-NEXT: divpd %xmm1, %xmm0
126 ; SSE-NEXT: ret{{[l|q]}}
139 ; SSE-LABEL: f8:
140 ; SSE: # %bb.0:
141 ; SSE-NEXT: divps %xmm1, %xmm0
142 ; SSE-NEXT: ret{{[l|q]}}
155 ; SSE-LABEL: f9:
156 ; SSE: # %bb.0:
157 ; SSE-NEXT: sqrtpd %xmm0, %xmm0
158 ; SSE-NEXT: ret{{[l|q]}}
172 ; SSE-LABEL: f10:
173 ; SSE: # %bb.0:
174 ; SSE-NEXT: sqrtps %xmm0, %xmm0
175 ; SSE-NEXT: ret{{[l|q]}}
189 ; SSE-LABEL: f11:
190 ; SSE: # %bb.0:
191 ; SSE-NEXT: cvtsd2ss %xmm0, %xmm1
192 ; SSE-NEXT: movaps %xmm1, %xmm0
193 ; SSE-NEXT: ret{{[l|q]}}
208 ; SSE-LABEL: f12:
209 ; SSE: # %bb.0:
210 ; SSE-NEXT: cvtss2sd %xmm1, %xmm0
211 ; SSE-NEXT: ret{{[l|q]}}
225 ; SSE-X86-LABEL: f13:
226 ; SSE-X86: # %bb.0:
227 ; SSE-X86-NEXT: subl $100, %esp
228 ; SSE-X86-NEXT: .cfi_def_cfa_offset 104
229 ; SSE-X86-NEXT: movups %xmm2, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill
230 ; SSE-X86-NEXT: movups %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill
231 ; SSE-X86-NEXT: movups %xmm0, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill
232 ; SSE-X86-NEXT: movss %xmm2, {{[0-9]+}}(%esp)
233 ; SSE-X86-NEXT: movss %xmm1, {{[0-9]+}}(%esp)
234 ; SSE-X86-NEXT: movss %xmm0, (%esp)
235 ; SSE-X86-NEXT: calll fmaf
236 ; SSE-X86-NEXT: fstpt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Spill
237 ; SSE-X86-NEXT: wait
238 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
239 ; SSE-X86-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
240 ; SSE-X86-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
241 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
242 ; SSE-X86-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
243 ; SSE-X86-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
244 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
245 ; SSE-X86-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
246 ; SSE-X86-NEXT: movss %xmm0, (%esp)
247 ; SSE-X86-NEXT: calll fmaf
248 ; SSE-X86-NEXT: fstpt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Spill
249 ; SSE-X86-NEXT: wait
250 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
251 ; SSE-X86-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
252 ; SSE-X86-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
253 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
254 ; SSE-X86-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
255 ; SSE-X86-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
256 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
257 ; SSE-X86-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
258 ; SSE-X86-NEXT: movss %xmm0, (%esp)
259 ; SSE-X86-NEXT: calll fmaf
260 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
261 ; SSE-X86-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]
262 ; SSE-X86-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
263 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
264 ; SSE-X86-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]
265 ; SSE-X86-NEXT: movss %xmm0, {{[0-9]+}}(%esp)
266 ; SSE-X86-NEXT: movups {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
267 ; SSE-X86-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]
268 ; SSE-X86-NEXT: movss %xmm0, (%esp)
269 ; SSE-X86-NEXT: fstps {{[0-9]+}}(%esp)
270 ; SSE-X86-NEXT: fldt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Reload
271 ; SSE-X86-NEXT: fstps {{[0-9]+}}(%esp)
272 ; SSE-X86-NEXT: fldt {{[-0-9]+}}(%e{{[sb]}}p) # 10-byte Folded Reload
273 ; SSE-X86-NEXT: fstps {{[0-9]+}}(%esp)
274 ; SSE-X86-NEXT: wait
275 ; SSE-X86-NEXT: calll fmaf
276 ; SSE-X86-NEXT: fstps {{[0-9]+}}(%esp)
277 ; SSE-X86-NEXT: wait
278 ; SSE-X86-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
279 ; SSE-X86-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
280 ; SSE-X86-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
281 ; SSE-X86-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
282 ; SSE-X86-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
283 ; SSE-X86-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
284 ; SSE-X86-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
285 ; SSE-X86-NEXT: addl $100, %esp
286 ; SSE-X86-NEXT: .cfi_def_cfa_offset 4
287 ; SSE-X86-NEXT: retl
289 ; SSE-X64-LABEL: f13:
290 ; SSE-X64: # %bb.0:
291 ; SSE-X64-NEXT: subq $88, %rsp
292 ; SSE-X64-NEXT: .cfi_def_cfa_offset 96
293 ; SSE-X64-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
294 ; SSE-X64-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
295 ; SSE-X64-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
296 ; SSE-X64-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
297 ; SSE-X64-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
298 ; SSE-X64-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3,3,3]
299 ; SSE-X64-NEXT: callq fmaf@PLT
300 ; SSE-X64-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill
301 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
302 ; SSE-X64-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
303 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
304 ; SSE-X64-NEXT: movhlps {{.*#+}} xmm1 = xmm1[1,1]
305 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
306 ; SSE-X64-NEXT: movhlps {{.*#+}} xmm2 = xmm2[1,1]
307 ; SSE-X64-NEXT: callq fmaf@PLT
308 ; SSE-X64-NEXT: unpcklps (%rsp), %xmm0 # 16-byte Folded Reload
309 ; SSE-X64-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
310 ; SSE-X64-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill
311 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
312 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
313 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
314 ; SSE-X64-NEXT: callq fmaf@PLT
315 ; SSE-X64-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
316 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
317 ; SSE-X64-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]
318 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
319 ; SSE-X64-NEXT: shufps {{.*#+}} xmm1 = xmm1[1,1,1,1]
320 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
321 ; SSE-X64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
322 ; SSE-X64-NEXT: callq fmaf@PLT
323 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
324 ; SSE-X64-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
325 ; SSE-X64-NEXT: unpcklpd (%rsp), %xmm1 # 16-byte Folded Reload
326 ; SSE-X64-NEXT: # xmm1 = xmm1[0],mem[0]
327 ; SSE-X64-NEXT: movaps %xmm1, %xmm0
328 ; SSE-X64-NEXT: addq $88, %rsp
329 ; SSE-X64-NEXT: .cfi_def_cfa_offset 8
330 ; SSE-X64-NEXT: retq
343 ; SSE-X86-LABEL: f14:
344 ; SSE-X86: # %bb.0:
345 ; SSE-X86-NEXT: pushl %ebp
346 ; SSE-X86-NEXT: .cfi_def_cfa_offset 8
347 ; SSE-X86-NEXT: .cfi_offset %ebp, -8
348 ; SSE-X86-NEXT: movl %esp, %ebp
349 ; SSE-X86-NEXT: .cfi_def_cfa_register %ebp
350 ; SSE-X86-NEXT: andl $-16, %esp
351 ; SSE-X86-NEXT: subl $112, %esp
352 ; SSE-X86-NEXT: movaps %xmm2, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill
353 ; SSE-X86-NEXT: movaps %xmm1, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill
354 ; SSE-X86-NEXT: movaps %xmm0, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill
355 ; SSE-X86-NEXT: movlps %xmm2, {{[0-9]+}}(%esp)
356 ; SSE-X86-NEXT: movlps %xmm1, {{[0-9]+}}(%esp)
357 ; SSE-X86-NEXT: movlps %xmm0, (%esp)
358 ; SSE-X86-NEXT: calll fma
359 ; SSE-X86-NEXT: movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
360 ; SSE-X86-NEXT: movhps %xmm0, {{[0-9]+}}(%esp)
361 ; SSE-X86-NEXT: movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
362 ; SSE-X86-NEXT: movhps %xmm0, {{[0-9]+}}(%esp)
363 ; SSE-X86-NEXT: movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm0 # 16-byte Reload
364 ; SSE-X86-NEXT: movhps %xmm0, (%esp)
365 ; SSE-X86-NEXT: fstpl {{[0-9]+}}(%esp)
366 ; SSE-X86-NEXT: wait
367 ; SSE-X86-NEXT: calll fma
368 ; SSE-X86-NEXT: fstpl {{[0-9]+}}(%esp)
369 ; SSE-X86-NEXT: wait
370 ; SSE-X86-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
371 ; SSE-X86-NEXT: movhps {{.*#+}} xmm0 = xmm0[0,1],mem[0,1]
372 ; SSE-X86-NEXT: movl %ebp, %esp
373 ; SSE-X86-NEXT: popl %ebp
374 ; SSE-X86-NEXT: .cfi_def_cfa %esp, 4
375 ; SSE-X86-NEXT: retl
377 ; SSE-X64-LABEL: f14:
378 ; SSE-X64: # %bb.0:
379 ; SSE-X64-NEXT: subq $72, %rsp
380 ; SSE-X64-NEXT: .cfi_def_cfa_offset 80
381 ; SSE-X64-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
382 ; SSE-X64-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
383 ; SSE-X64-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill
384 ; SSE-X64-NEXT: callq fma@PLT
385 ; SSE-X64-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
386 ; SSE-X64-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
387 ; SSE-X64-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
388 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
389 ; SSE-X64-NEXT: movhlps {{.*#+}} xmm1 = xmm1[1,1]
390 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
391 ; SSE-X64-NEXT: movhlps {{.*#+}} xmm2 = xmm2[1,1]
392 ; SSE-X64-NEXT: callq fma@PLT
393 ; SSE-X64-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
394 ; SSE-X64-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
395 ; SSE-X64-NEXT: movaps %xmm1, %xmm0
396 ; SSE-X64-NEXT: addq $72, %rsp
397 ; SSE-X64-NEXT: .cfi_def_cfa_offset 8
398 ; SSE-X64-NEXT: retq
411 ; SSE-LABEL: f15:
412 ; SSE: # %bb.0:
413 ; SSE-NEXT: cvtps2pd %xmm0, %xmm0
414 ; SSE-NEXT: ret{{[l|q]}}
427 ; SSE-LABEL: f16:
428 ; SSE: # %bb.0:
429 ; SSE-NEXT: cvtpd2ps %xmm0, %xmm0
430 ; SSE-NEXT: ret{{[l|q]}}