aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-06-27 05:16:57 +0000
committerDan Gohman <gohman@apple.com>2009-06-27 05:16:57 +0000
commitde53dc03f5c1549f3176e979bbeeac965dfa5cbc (patch)
tree8884c3e980dc1c704244ba6a027d5ad4f080cd57 /test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
parent553e571b436ae27cc8b322be6feecd357651b617 (diff)
downloadexternal_llvm-de53dc03f5c1549f3176e979bbeeac965dfa5cbc.zip
external_llvm-de53dc03f5c1549f3176e979bbeeac965dfa5cbc.tar.gz
external_llvm-de53dc03f5c1549f3176e979bbeeac965dfa5cbc.tar.bz2
When a value is used multiple times within a single PHI, instructions
inserted to replace that value must dominate all of of the basic blocks associated with the uses of the value in the PHI, not just one of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74376 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll')
-rw-r--r--test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll b/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
new file mode 100644
index 0000000..7119cbb
--- /dev/null
+++ b/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
@@ -0,0 +1,33 @@
+; RUN: llvm-as < %s | opt -indvars
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
+
+@ue = external global i64
+
+define i32 @foo() nounwind {
+entry:
+ br label %bb38.i
+
+bb14.i27:
+ %t0 = load i64* @ue, align 8
+ %t1 = sub i64 %t0, %i.0.i35
+ %t2 = add i64 %t1, 1
+ br i1 undef, label %bb15.i28, label %bb19.i31
+
+bb15.i28:
+ br label %bb19.i31
+
+bb19.i31:
+ %y.0.i = phi i64 [ %t2, %bb15.i28 ], [ %t2, %bb14.i27 ]
+ br label %bb35.i
+
+bb35.i:
+ br i1 undef, label %bb37.i, label %bb14.i27
+
+bb37.i:
+ %t3 = add i64 %i.0.i35, 1
+ br label %bb38.i
+
+bb38.i:
+ %i.0.i35 = phi i64 [ 1, %entry ], [ %t3, %bb37.i ]
+ br label %bb35.i
+}