summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2008-11-03 18:32:19 +0000
committerDevang Patel <dpatel@apple.com>2008-11-03 18:32:19 +0000
commitc1631db93b7777baf4a0ec3a09ceda18837894b3 (patch)
tree6262f5b7508047b2282deb5a98391b1a90b1fea3 /llvm/test
parentac41d9f5d81a28d9148411b03f556cc1e99880ca (diff)
downloadbcm5719-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.ll17
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)
OpenPOWER on IntegriCloud