indirectbr-backedge.ll 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. ; RUN: opt -loop-simplify -S < %s | FileCheck %s
  2. ; LoopSimplify shouldn't split loop backedges that use indirectbr.
  3. ; CHECK: bb1: ; preds = %bb5, %bb
  4. ; CHECK-NEXT: indirectbr
  5. ; CHECK: bb5: ; preds = %bb1
  6. ; CHECK-NEXT: br label %bb1{{$}}
  7. define void @foo(i8* %p) nounwind {
  8. bb:
  9. br label %bb1
  10. bb1: ; preds = %bb5, %bb1, %bb
  11. indirectbr i8* %p, [label %bb6, label %bb7, label %bb1, label %bb2, label %bb3, label %bb5, label %bb4]
  12. bb2: ; preds = %bb1
  13. ret void
  14. bb3: ; preds = %bb1
  15. ret void
  16. bb4: ; preds = %bb1
  17. ret void
  18. bb5: ; preds = %bb1
  19. br label %bb1
  20. bb6: ; preds = %bb1
  21. ret void
  22. bb7: ; preds = %bb1
  23. ret void
  24. }