Rename and tidy up tests
[oota-llvm.git] / test / CodeGen / X86 / avx-cvt.ll
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx | FileCheck %s
2
3 ; CHECK: vcvtdq2ps %ymm
4 define <8 x float> @sitofp00(<8 x i32> %a) nounwind {
5   %b = sitofp <8 x i32> %a to <8 x float>
6   ret <8 x float> %b
7 }
8
9 ; CHECK: vcvttps2dq %ymm
10 define <8 x i32> @fptosi00(<8 x float> %a) nounwind {
11   %b = fptosi <8 x float> %a to <8 x i32>
12   ret <8 x i32> %b
13 }
14
15 ; CHECK: vcvtpd2psy %ymm
16 ; CHECK-NEXT: vcvtpd2psy %ymm
17 ; CHECK-NEXT: vinsertf128 $1
18 define <8 x float> @fptrunc00(<8 x double> %b) nounwind {
19   %a = fptrunc <8 x double> %b to <8 x float>
20   ret <8 x float> %a
21 }
22
23 ; CHECK: vcvtsi2sdq (%
24 define double @funcA(i64* nocapture %e) nounwind uwtable readonly ssp {
25 entry:
26   %tmp1 = load i64* %e, align 8
27   %conv = sitofp i64 %tmp1 to double
28   ret double %conv
29 }
30
31 ; CHECK: vcvtsi2sd (%
32 define double @funcB(i32* nocapture %e) nounwind uwtable readonly ssp {
33 entry:
34   %tmp1 = load i32* %e, align 4
35   %conv = sitofp i32 %tmp1 to double
36   ret double %conv
37 }
38
39 ; CHECK: vcvtsi2ss (%
40 define float @funcC(i32* nocapture %e) nounwind uwtable readonly ssp {
41 entry:
42   %tmp1 = load i32* %e, align 4
43   %conv = sitofp i32 %tmp1 to float
44   ret float %conv
45 }
46
47 ; CHECK: vcvtsi2ssq  (%
48 define float @funcD(i64* nocapture %e) nounwind uwtable readonly ssp {
49 entry:
50   %tmp1 = load i64* %e, align 8
51   %conv = sitofp i64 %tmp1 to float
52   ret float %conv
53 }
54
55 ; CHECK: vcvtss2sd
56 define void @fpext() nounwind uwtable {
57 entry:
58   %f = alloca float, align 4
59   %d = alloca double, align 8
60   %tmp = load float* %f, align 4
61   %conv = fpext float %tmp to double
62   store double %conv, double* %d, align 8
63   ret void
64 }
65