preserve-scev.ll 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. ; RUN: opt < %s -loop-rotate -loop-reduce -verify-dom-info -verify-loop-info -disable-output
  2. define fastcc void @foo() nounwind {
  3. BB:
  4. br label %BB1
  5. BB1: ; preds = %BB19, %BB
  6. br label %BB4
  7. BB2: ; preds = %BB4
  8. %tmp = bitcast i32 undef to i32 ; <i32> [#uses=1]
  9. br label %BB4
  10. BB4: ; preds = %BB3, %BB1
  11. %tmp5 = phi i32 [ undef, %BB1 ], [ %tmp, %BB2 ] ; <i32> [#uses=1]
  12. br i1 false, label %BB8, label %BB2
  13. BB8: ; preds = %BB6
  14. %tmp7 = bitcast i32 %tmp5 to i32 ; <i32> [#uses=2]
  15. br i1 false, label %BB9, label %BB13
  16. BB9: ; preds = %BB12, %BB8
  17. %tmp10 = phi i32 [ %tmp11, %BB12 ], [ %tmp7, %BB8 ] ; <i32> [#uses=2]
  18. %tmp11 = add i32 %tmp10, 1 ; <i32> [#uses=1]
  19. br label %BB12
  20. BB12: ; preds = %BB9
  21. br i1 false, label %BB9, label %BB17
  22. BB13: ; preds = %BB15, %BB8
  23. %tmp14 = phi i32 [ %tmp16, %BB15 ], [ %tmp7, %BB8 ] ; <i32> [#uses=1]
  24. br label %BB15
  25. BB15: ; preds = %BB13
  26. %tmp16 = add i32 %tmp14, -1 ; <i32> [#uses=1]
  27. br i1 false, label %BB13, label %BB18
  28. BB17: ; preds = %BB12
  29. br label %BB19
  30. BB18: ; preds = %BB15
  31. br label %BB19
  32. BB19: ; preds = %BB18, %BB17
  33. %tmp20 = phi i32 [ %tmp10, %BB17 ], [ undef, %BB18 ] ; <i32> [#uses=0]
  34. br label %BB1
  35. }