New feature testcase for simplifycfg.
authorChris Lattner <sabre@nondot.org>
Wed, 11 Feb 2004 03:35:04 +0000 (03:35 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 11 Feb 2004 03:35:04 +0000 (03:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11306 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/SimplifyCFG/PhiEliminate.ll [new file with mode: 0644]

diff --git a/test/Transforms/SimplifyCFG/PhiEliminate.ll b/test/Transforms/SimplifyCFG/PhiEliminate.ll
new file mode 100644 (file)
index 0000000..05cbe89
--- /dev/null
@@ -0,0 +1,35 @@
+; Test a bunch of cases where the cfg simplification code should
+; be able to fold PHI nodes into computation in common cases.  Folding the PHI
+; nodes away allows the branches to be eliminated, performing a simple form of
+; 'if conversion'.
+
+; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis > Output/%s.xform
+; RUN: not grep phi Output/%s.xform && grep ret Output/%s.xform
+
+declare void %use(bool)
+declare void %use(int)
+
+void %test(bool %c, int %V) {
+       br bool %c, label %T, label %F
+T:
+       br label %F
+F:
+       %B1 = phi bool [true, %0], [false, %T]
+       %B2 = phi bool [true, %T], [false, %0]
+       %I1 = phi int  [1, %T], [0, %0]
+       %I2 = phi int  [1, %0], [0, %T]
+       %I3 = phi int  [17, %T], [0, %0]
+       %I4 = phi int  [17, %T], [5, %0]
+       %I5 = phi int  [%V, %T], [0, %0]
+       %I6 = phi int  [%V, %0], [0, %T]
+       call void %use(bool %B1)
+       call void %use(bool %B2)
+       call void %use(int  %I1)
+       call void %use(int  %I2)
+       call void %use(int  %I3)
+       call void %use(int  %I4)
+       call void %use(int  %I5)
+       call void %use(int  %I6)
+       ret void
+}
+