phi_node_update_multiple_preds.ll 1.1 KB

12345678910111213141516171819202122232425262728
  1. ; RUN: opt < %s -loop-reduce -disable-output
  2. ; LSR should not crash on this.
  3. define fastcc void @loadloop() {
  4. entry:
  5. switch i8 0, label %shortcirc_next [
  6. i8 32, label %loopexit.2
  7. i8 59, label %loopexit.2
  8. ]
  9. shortcirc_next: ; preds = %no_exit.2, %entry
  10. %indvar37 = phi i32 [ 0, %entry ], [ %indvar.next38, %no_exit.2 ] ; <i32> [#uses=3]
  11. %gep.upgrd.1 = zext i32 %indvar37 to i64 ; <i64> [#uses=1]
  12. %wp.2.4 = getelementptr i8, i8* null, i64 %gep.upgrd.1 ; <i8*> [#uses=1]
  13. br i1 false, label %loopexit.2, label %no_exit.2
  14. no_exit.2: ; preds = %shortcirc_next
  15. %wp.2.4.rec = bitcast i32 %indvar37 to i32 ; <i32> [#uses=1]
  16. %inc.1.rec = add i32 %wp.2.4.rec, 1 ; <i32> [#uses=1]
  17. %inc.1 = getelementptr i8, i8* null, i32 %inc.1.rec ; <i8*> [#uses=2]
  18. %indvar.next38 = add i32 %indvar37, 1 ; <i32> [#uses=1]
  19. switch i8 0, label %shortcirc_next [
  20. i8 32, label %loopexit.2
  21. i8 59, label %loopexit.2
  22. ]
  23. loopexit.2: ; preds = %no_exit.2, %no_exit.2, %shortcirc_next, %entry, %entry
  24. %wp.2.7 = phi i8* [ null, %entry ], [ null, %entry ], [ %wp.2.4, %shortcirc_next ], [ %inc.1, %no_exit.2 ], [ %inc.1, %no_exit.2 ] ; <i8*> [#uses=0]
  25. ret void
  26. }