diff options
author | Devang Patel <dpatel@apple.com> | 2008-11-03 18:32:19 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2008-11-03 18:32:19 +0000 |
commit | c1631db93b7777baf4a0ec3a09ceda18837894b3 (patch) | |
tree | 6262f5b7508047b2282deb5a98391b1a90b1fea3 /llvm/test | |
parent | ac41d9f5d81a28d9148411b03f556cc1e99880ca (diff) | |
download | bcm5719-llvm-c1631db93b7777baf4a0ec3a09ceda18837894b3.tar.gz bcm5719-llvm-c1631db93b7777baf4a0ec3a09ceda18837894b3.zip |
Turn floating point IVs into integer IVs where possible.
This allows SCEV users to effectively calculate trip count.
LSR later on transforms back integer IVs to floating point IVs
later on to avoid int-to-float casts inside the loop.
llvm-svn: 58625
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Transforms/IndVarsSimplify/2008-11-03-Floating.ll | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/test/Transforms/IndVarsSimplify/2008-11-03-Floating.ll b/llvm/test/Transforms/IndVarsSimplify/2008-11-03-Floating.ll new file mode 100644 index 00000000000..b7574fea486 --- /dev/null +++ b/llvm/test/Transforms/IndVarsSimplify/2008-11-03-Floating.ll @@ -0,0 +1,17 @@ +; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep icmp | count 1 +define void @bar() nounwind { +entry: + br label %bb + +bb: ; preds = %bb, %entry + %x.0.reg2mem.0 = phi double [ 0.000000e+00, %entry ], [ %1, %bb ] ; <double> [#uses=2] + %0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind ; <i32> [#uses=0] + %1 = add double %x.0.reg2mem.0, 1.000000e+00 ; <double> [#uses=2] + %2 = fcmp olt double %1, 1.000000e+04 ; <i1> [#uses=1] + br i1 %2, label %bb, label %return + +return: ; preds = %bb + ret void +} + +declare i32 @foo(double) |