From c2f40066bbceb15e73e5c4df97d2d115f8a36e58 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sat, 14 Aug 2010 00:43:09 +0000 Subject: LoopSimplify shouldn't split loop backedges that use indirectbr. PR7867. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111061 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../Transforms/LoopSimplify/indirectbr-backedge.ll | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 test/Transforms/LoopSimplify/indirectbr-backedge.ll (limited to 'test') diff --git a/test/Transforms/LoopSimplify/indirectbr-backedge.ll b/test/Transforms/LoopSimplify/indirectbr-backedge.ll new file mode 100644 index 0000000000..ca6e47fcec --- /dev/null +++ b/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 +} -- cgit v1.2.3