| ; RUN: opt -loop-simplify -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 | |
| } |