diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-03-01 19:07:31 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-03-01 19:07:31 +0000 |
commit | 12f98fae98e61d10aa661f5e0100265780910da1 (patch) | |
tree | 543908016c5798d130c1cad295522b35096bb47e /llvm/test/Transforms/LoopVectorize/phi-hang.ll | |
parent | 516d70399e8d83b10039d59d9c7f8d3aedf5b980 (diff) | |
download | bcm5719-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.ll | 29 |
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 +} |