blob: 027d2f1dafc1da321954c338bf4038bd743a7e65 [file] [log] [blame]
Evan Chengb1f49812009-12-22 17:47:23 +00001; RUN: llc < %s -march=x86-64 -mattr=+sse2 | FileCheck %s
Evan Cheng400073d2009-12-18 07:40:29 +00002
3define double @t1(float* nocapture %x) nounwind readonly ssp {
4entry:
Evan Chengb1f49812009-12-22 17:47:23 +00005; CHECK: t1:
6; CHECK: movss (%rdi), %xmm0
Benjamin Kramera2938e72010-06-26 20:05:06 +00007; CHECK: cvtss2sd %xmm0, %xmm0
Evan Cheng400073d2009-12-18 07:40:29 +00008
Evan Cheng400073d2009-12-18 07:40:29 +00009 %0 = load float* %x, align 4
10 %1 = fpext float %0 to double
11 ret double %1
12}
13
Evan Chengb1f49812009-12-22 17:47:23 +000014define float @t2(double* nocapture %x) nounwind readonly ssp optsize {
Evan Cheng400073d2009-12-18 07:40:29 +000015entry:
Evan Chengb1f49812009-12-22 17:47:23 +000016; CHECK: t2:
Benjamin Kramera2938e72010-06-26 20:05:06 +000017; CHECK: cvtsd2ss (%rdi), %xmm0
Evan Cheng400073d2009-12-18 07:40:29 +000018 %0 = load double* %x, align 8
19 %1 = fptrunc double %0 to float
20 ret float %1
21}