aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/Transforms/SCCP/phitest.ll23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Transforms/SCCP/phitest.ll b/test/Transforms/SCCP/phitest.ll
new file mode 100644
index 0000000..18f862a
--- /dev/null
+++ b/test/Transforms/SCCP/phitest.ll
@@ -0,0 +1,23 @@
+; RUN: llvm-as < %s | opt -sccp -dce -simplifycfg | llvm-dis | not grep br
+
+int %test(int %param) {
+entry:
+ %tmp.1 = setne int %param, 0
+ br bool %tmp.1, label %endif.0, label %else
+
+else:
+ br label %endif.0
+
+endif.0:
+ %a.0 = phi int [ 2, %else ], [ 3, %entry ]
+ %b.0 = phi int [ 3, %else ], [ 2, %entry ]
+ %tmp.5 = add int %a.0, %b.0
+ %tmp.7 = setne int %tmp.5, 5
+ br bool %tmp.7, label %UnifiedReturnBlock, label %endif.1
+
+endif.1:
+ ret int 0
+
+UnifiedReturnBlock:
+ ret int 2
+}