2004-03-13-LoopExtractorCrash.ll 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. ; RUN: opt < %s -loop-extract -disable-output
  2. define void @solve() {
  3. entry:
  4. br label %loopentry.0
  5. loopentry.0: ; preds = %endif.0, %entry
  6. br i1 false, label %no_exit.0, label %loopexit.0
  7. no_exit.0: ; preds = %loopentry.0
  8. br i1 false, label %then.0, label %endif.0
  9. then.0: ; preds = %no_exit.0
  10. br i1 false, label %shortcirc_done, label %shortcirc_next
  11. shortcirc_next: ; preds = %then.0
  12. br label %shortcirc_done
  13. shortcirc_done: ; preds = %shortcirc_next, %then.0
  14. br i1 false, label %then.1, label %endif.1
  15. then.1: ; preds = %shortcirc_done
  16. br i1 false, label %cond_true, label %cond_false
  17. cond_true: ; preds = %then.1
  18. br label %cond_continue
  19. cond_false: ; preds = %then.1
  20. br label %cond_continue
  21. cond_continue: ; preds = %cond_false, %cond_true
  22. br label %return
  23. after_ret.0: ; No predecessors!
  24. br label %endif.1
  25. endif.1: ; preds = %after_ret.0, %shortcirc_done
  26. br label %endif.0
  27. endif.0: ; preds = %endif.1, %no_exit.0
  28. br label %loopentry.0
  29. loopexit.0: ; preds = %loopentry.0
  30. br i1 false, label %then.2, label %endif.2
  31. then.2: ; preds = %loopexit.0
  32. br i1 false, label %then.3, label %endif.3
  33. then.3: ; preds = %then.2
  34. br label %return
  35. after_ret.1: ; No predecessors!
  36. br label %endif.3
  37. endif.3: ; preds = %after_ret.1, %then.2
  38. br label %endif.2
  39. endif.2: ; preds = %endif.3, %loopexit.0
  40. br label %loopentry.1
  41. loopentry.1: ; preds = %no_exit.1, %endif.2
  42. br i1 false, label %no_exit.1, label %loopexit.1
  43. no_exit.1: ; preds = %loopentry.1
  44. br label %loopentry.1
  45. loopexit.1: ; preds = %loopentry.1
  46. br label %return
  47. after_ret.2: ; No predecessors!
  48. br label %return
  49. return: ; preds = %after_ret.2, %loopexit.1, %then.3, %cond_continue
  50. ret void
  51. }