summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopVectorize/phi-hang.ll
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-03-01 19:07:31 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-03-01 19:07:31 +0000
commit12f98fae98e61d10aa661f5e0100265780910da1 (patch)
tree543908016c5798d130c1cad295522b35096bb47e /llvm/test/Transforms/LoopVectorize/phi-hang.ll
parent516d70399e8d83b10039d59d9c7f8d3aedf5b980 (diff)
downloadbcm5719-llvm-12f98fae98e61d10aa661f5e0100265780910da1.tar.gz
bcm5719-llvm-12f98fae98e61d10aa661f5e0100265780910da1.zip
LoopVectorize: Don't hang forever if a PHI only has skipped PHI uses.
Fixes PR15384. llvm-svn: 176366
Diffstat (limited to 'llvm/test/Transforms/LoopVectorize/phi-hang.ll')
-rw-r--r--llvm/test/Transforms/LoopVectorize/phi-hang.ll29
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopVectorize/phi-hang.ll b/llvm/test/Transforms/LoopVectorize/phi-hang.ll
new file mode 100644
index 00000000000..b80d45995dc
--- /dev/null
+++ b/llvm/test/Transforms/LoopVectorize/phi-hang.ll
@@ -0,0 +1,29 @@
+; RUN: opt -S -loop-vectorize < %s
+
+; PR15384
+define void @test1(i32 %arg) {
+bb:
+ br label %bb1
+
+bb1: ; preds = %bb5, %bb
+ %tmp = phi i32 [ 1, %bb ], [ %tmp7, %bb5 ]
+ %tmp2 = phi i32 [ %arg, %bb ], [ %tmp9, %bb5 ]
+ br i1 true, label %bb5, label %bb3
+
+bb3: ; preds = %bb1
+ br label %bb4
+
+bb4: ; preds = %bb3
+ br label %bb5
+
+bb5: ; preds = %bb4, %bb1
+ %tmp6 = phi i32 [ 0, %bb4 ], [ %tmp, %bb1 ]
+ %tmp7 = phi i32 [ 0, %bb4 ], [ %tmp6, %bb1 ]
+ %tmp8 = phi i32 [ 0, %bb4 ], [ %tmp, %bb1 ]
+ %tmp9 = add nsw i32 %tmp2, 1
+ %tmp10 = icmp eq i32 %tmp9, 0
+ br i1 %tmp10, label %bb11, label %bb1
+
+bb11: ; preds = %bb5
+ ret void
+}
OpenPOWER on IntegriCloud