aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/CondProp/phisimplify3.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/CondProp/phisimplify3.ll')
-rw-r--r--test/Transforms/CondProp/phisimplify3.ll26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/Transforms/CondProp/phisimplify3.ll b/test/Transforms/CondProp/phisimplify3.ll
new file mode 100644
index 0000000000..16785971e3
--- /dev/null
+++ b/test/Transforms/CondProp/phisimplify3.ll
@@ -0,0 +1,26 @@
+; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi
+
+define i32 @foo(i1, i32, i32) {
+prologue:
+ br i1 %0, label %eq, label %ne
+
+eq: ; preds = %prologue
+ store i32 0, i32* inttoptr (i32 10000 to i32*)
+ %3 = icmp eq i32 %1, %2 ; <i1> [#uses=1]
+ br label %join
+
+ne: ; preds = %prologue
+ %4 = icmp ne i32 %1, %2 ; <i1> [#uses=1]
+ br label %join
+
+join: ; preds = %ne, %eq
+ %5 = phi i1 [ %3, %eq ], [ %4, %ne ] ; <i1> [#uses=1]
+ br i1 %5, label %yes, label %no
+
+yes: ; preds = %join
+ store i32 0, i32* inttoptr (i32 20000 to i32*)
+ ret i32 5
+
+no: ; preds = %join
+ ret i32 20
+}