; Test that PHI nodes and select instructions do not necessarily make stuff
; non-constant.

; RUN: opt %s -globalopt -S | not grep global

@X = internal global i32 4              ; <i32*> [#uses=2]
@Y = internal global i32 5              ; <i32*> [#uses=2]

define i32 @test1(i1 %C) {
        %P = select i1 %C, i32* @X, i32* @Y             ; <i32*> [#uses=1]
        %V = load i32* %P               ; <i32> [#uses=1]
        ret i32 %V
}

define i32 @test2(i1 %C) {
; <label>:0
        br i1 %C, label %T, label %Cont

T:              ; preds = %0
        br label %Cont

Cont:           ; preds = %T, %0
        %P = phi i32* [ @X, %0 ], [ @Y, %T ]            ; <i32*> [#uses=1]
        %V = load i32* %P               ; <i32> [#uses=1]
        ret i32 %V
}





