summaryrefslogtreecommitdiff
path: root/test/Transforms/LICM
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-12-09 23:29:25 +0000
committerChris Lattner <sabre@nondot.org>2003-12-09 23:29:25 +0000
commita8d9c83ebe83c3d3f31ba9d39e8baac46379752c (patch)
treec278ea3b12fd03d4b7413e37356d85e686f7c484 /test/Transforms/LICM
parent010ba10032d7c5f34c209cae1a9445776f49914a (diff)
downloadllvm-a8d9c83ebe83c3d3f31ba9d39e8baac46379752c.tar.gz
llvm-a8d9c83ebe83c3d3f31ba9d39e8baac46379752c.tar.bz2
llvm-a8d9c83ebe83c3d3f31ba9d39e8baac46379752c.tar.xz
Yet another hard testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10349 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LICM')
-rw-r--r--test/Transforms/LICM/sink_phi_node_use.ll28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/Transforms/LICM/sink_phi_node_use.ll b/test/Transforms/LICM/sink_phi_node_use.ll
new file mode 100644
index 0000000000..6335469ea2
--- /dev/null
+++ b/test/Transforms/LICM/sink_phi_node_use.ll
@@ -0,0 +1,28 @@
+; RUN: llvm-as < %s | opt -licm | llvm-dis | grep -C1 add | grep preheader.loopexit:
+
+implementation
+
+void %test() {
+loopentry.2.i:
+ br bool false, label %no_exit.1.i.preheader, label %loopentry.3.i.preheader
+
+no_exit.1.i.preheader:
+ br label %no_exit.1.i
+
+no_exit.1.i:
+ br bool false, label %return.i, label %endif.8.i
+
+endif.8.i:
+ %inc.1.i = add int 0, 1
+ br bool false, label %no_exit.1.i, label %loopentry.3.i.preheader.loopexit
+
+loopentry.3.i.preheader.loopexit:
+ br label %loopentry.3.i.preheader
+
+loopentry.3.i.preheader:
+ %arg_num.0.i.ph13000 = phi int [ 0, %loopentry.2.i ], [ %inc.1.i, %loopentry.3.i.preheader.loopexit ]
+ ret void
+
+return.i:
+ ret void
+}