aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll')
-rw-r--r--test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll b/test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll
new file mode 100644
index 0000000..da15180
--- /dev/null
+++ b/test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll
@@ -0,0 +1,20 @@
+; This test checks to make sure that 'br X, Dest, Dest' is folded into
+; 'br Dest'
+
+; RUN: as < %s | opt -simplifycfg | dis | not grep 'br bool %c2'
+
+declare void %noop()
+
+int %test(bool %c1, bool %c2) {
+ call void %noop()
+ br bool %c1, label %A, label %Y
+A:
+ call void %noop()
+ br bool %c2, label %X, label %X ; Can be converted to unconditional br
+X:
+ call void %noop()
+ ret int 0
+Y:
+ call void %noop()
+ br label %X
+}