be550366286df0a4d7642720cae8fbbaa15ed35e
[oota-llvm.git] / test / CodeGen / X86 / fp-elim-and-no-fp-elim.ll
1 ; RUN: llc < %s -mtriple x86_64-apple-darwin | FileCheck %s
2
3 define void @bar(i32 %argc) #0 {
4 ; CHECK: bar:
5 ; CHECK: pushq %rbp
6 entry:
7   %conv = sitofp i32 %argc to double
8   %mul = fmul double %conv, 3.792700e+01
9   %conv1 = fptrunc double %mul to float
10   %div = fdiv double 9.273700e+02, %conv
11   %conv3 = fptrunc double %div to float
12   tail call void @foo(float %conv1, float %conv3)
13   ret void
14 }
15
16 define void @qux(i32 %argc) #1 {
17 ; CHECK: qux:
18 ; CHECK-NOT: pushq %rbp
19 entry:
20   %conv = sitofp i32 %argc to double
21   %mul = fmul double %conv, 3.792700e+01
22   %conv1 = fptrunc double %mul to float
23   %div = fdiv double 9.273700e+02, %conv
24   %conv3 = fptrunc double %div to float
25   tail call void @foo(float %conv1, float %conv3)
26   ret void
27 }
28
29 declare void @foo(float, float)
30
31 attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
32 attributes #1 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }