multiple-exits.ll 525 B

1234567891011121314151617181920212223242526
  1. ; RUN: opt < %s -loop-deletion -S | FileCheck %s
  2. ; Checks whether dead loops with multiple exits can be eliminated
  3. ; CHECK: entry:
  4. ; CHECK-NEXT: br label %return
  5. ; CHECK: return:
  6. ; CHECK-NEXT: ret void
  7. define void @foo(i64 %n, i64 %m) nounwind {
  8. entry:
  9. br label %bb
  10. bb:
  11. %x.0 = phi i64 [ 0, %entry ], [ %t0, %bb2 ]
  12. %t0 = add i64 %x.0, 1
  13. %t1 = icmp slt i64 %x.0, %n
  14. br i1 %t1, label %bb2, label %return
  15. bb2:
  16. %t2 = icmp slt i64 %x.0, %m
  17. br i1 %t1, label %bb, label %return
  18. return:
  19. ret void
  20. }