phi-select.ll 778 B

12345678910111213141516171819202122232425262728293031
  1. ; Test that PHI nodes and select instructions do not necessarily make stuff
  2. ; non-constant.
  3. ; RUN: opt < %s -globalopt -S | not grep global
  4. @X = internal global i32 4 ; <i32*> [#uses=2]
  5. @Y = internal global i32 5 ; <i32*> [#uses=2]
  6. define i32 @test1(i1 %C) {
  7. %P = select i1 %C, i32* @X, i32* @Y ; <i32*> [#uses=1]
  8. %V = load i32, i32* %P ; <i32> [#uses=1]
  9. ret i32 %V
  10. }
  11. define i32 @test2(i1 %C) {
  12. ; <label>:0
  13. br i1 %C, label %T, label %Cont
  14. T: ; preds = %0
  15. br label %Cont
  16. Cont: ; preds = %T, %0
  17. %P = phi i32* [ @X, %0 ], [ @Y, %T ] ; <i32*> [#uses=1]
  18. %V = load i32, i32* %P ; <i32> [#uses=1]
  19. ret i32 %V
  20. }