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 | 5d79bb8770a5a655af0dccc87b952c3ea9bad45e (patch) | |
| tree | 4cebc6854c070d85f1567d75ae9d8cedbfad2958 /test/Transforms/LoopVectorize | |
| parent | 4c8e74f0b75cb10820c45c86399fbd02e4a8832a (diff) | |
LoopVectorize: Don't hang forever if a PHI only has skipped PHI uses.
Fixes PR15384.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176366 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LoopVectorize')
| -rw-r--r-- | test/Transforms/LoopVectorize/phi-hang.ll | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/Transforms/LoopVectorize/phi-hang.ll b/test/Transforms/LoopVectorize/phi-hang.ll new file mode 100644 index 0000000000..b80d45995d --- /dev/null +++ b/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 +} |
