2006-06-13-SingleEntryPHI.ll 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. ; RUN: opt < %s -loop-unswitch -disable-output
  2. %struct.BLEND_MAP = type { i16, i16, i16, i32, %struct.BLEND_MAP_ENTRY* }
  3. %struct.BLEND_MAP_ENTRY = type { float, i8, { [5 x float], [4 x i8] } }
  4. %struct.TPATTERN = type { i16, i16, i16, i32, float, float, float, %struct.WARP*, %struct.TPATTERN*, %struct.BLEND_MAP*, { %struct.anon, [4 x i8] } }
  5. %struct.TURB = type { i16, %struct.WARP*, [3 x double], i32, float, float }
  6. %struct.WARP = type { i16, %struct.WARP* }
  7. %struct.anon = type { float, [3 x double] }
  8. define void @Parse_Pattern() {
  9. entry:
  10. br label %bb1096.outer20
  11. bb671: ; preds = %cond_true1099
  12. br label %bb1096.outer23
  13. bb1096.outer20.loopexit: ; preds = %cond_true1099
  14. %Local_Turb.0.ph24.lcssa = phi %struct.TURB* [ %Local_Turb.0.ph24, %cond_true1099 ] ; <%struct.TURB*> [#uses=1]
  15. br label %bb1096.outer20
  16. bb1096.outer20: ; preds = %bb1096.outer20.loopexit, %entry
  17. %Local_Turb.0.ph22 = phi %struct.TURB* [ undef, %entry ], [ %Local_Turb.0.ph24.lcssa, %bb1096.outer20.loopexit ] ; <%struct.TURB*> [#uses=1]
  18. %tmp1098 = icmp eq i32 0, 0 ; <i1> [#uses=1]
  19. br label %bb1096.outer23
  20. bb1096.outer23: ; preds = %bb1096.outer20, %bb671
  21. %Local_Turb.0.ph24 = phi %struct.TURB* [ %Local_Turb.0.ph22, %bb1096.outer20 ], [ null, %bb671 ] ; <%struct.TURB*> [#uses=2]
  22. br label %bb1096
  23. bb1096: ; preds = %cond_true1099, %bb1096.outer23
  24. br i1 %tmp1098, label %cond_true1099, label %bb1102
  25. cond_true1099: ; preds = %bb1096
  26. switch i32 0, label %bb1096.outer20.loopexit [
  27. i32 161, label %bb671
  28. i32 359, label %bb1096
  29. ]
  30. bb1102: ; preds = %bb1096
  31. %Local_Turb.0.ph24.lcssa1 = phi %struct.TURB* [ %Local_Turb.0.ph24, %bb1096 ] ; <%struct.TURB*> [#uses=0]
  32. ret void
  33. }