diff options
author | Dan Gohman <gohman@apple.com> | 2010-08-14 00:43:09 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-08-14 00:43:09 +0000 |
commit | aa445c075119075e59dad9d431ee37e33430a938 (patch) | |
tree | 57e732c291b1cfa8f911c176439c8bbb84a323a7 /llvm/test/Transforms/LoopSimplify | |
parent | 4a63fad976c8cf3bcdc1bbc3927668164890ecb8 (diff) | |
download | bcm5719-llvm-aa445c075119075e59dad9d431ee37e33430a938.tar.gz bcm5719-llvm-aa445c075119075e59dad9d431ee37e33430a938.zip |
LoopSimplify shouldn't split loop backedges that use indirectbr. PR7867.
llvm-svn: 111061
Diffstat (limited to 'llvm/test/Transforms/LoopSimplify')
-rw-r--r-- | llvm/test/Transforms/LoopSimplify/indirectbr-backedge.ll | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopSimplify/indirectbr-backedge.ll b/llvm/test/Transforms/LoopSimplify/indirectbr-backedge.ll new file mode 100644 index 00000000000..ca6e47fcecd --- /dev/null +++ b/llvm/test/Transforms/LoopSimplify/indirectbr-backedge.ll @@ -0,0 +1,35 @@ +; RUN: opt -loopsimplify -S < %s | FileCheck %s + +; LoopSimplify shouldn't split loop backedges that use indirectbr. + +; CHECK: bb1: ; preds = %bb5, %bb +; CHECK-NEXT: indirectbr + +; CHECK: bb5: ; preds = %bb1 +; CHECK-NEXT: br label %bb1{{$}} + +define void @foo(i8* %p) nounwind { +bb: + br label %bb1 + +bb1: ; preds = %bb5, %bb1, %bb + indirectbr i8* %p, [label %bb6, label %bb7, label %bb1, label %bb2, label %bb3, label %bb5, label %bb4] + +bb2: ; preds = %bb1 + ret void + +bb3: ; preds = %bb1 + ret void + +bb4: ; preds = %bb1 + ret void + +bb5: ; preds = %bb1 + br label %bb1 + +bb6: ; preds = %bb1 + ret void + +bb7: ; preds = %bb1 + ret void +} |