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

; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep global

%X = internal global int 4
%Y = internal global int 5

int %test1(bool %C) {
	%P = select bool %C, int* %X, int* %Y
	%V = load int* %P
	ret int %V
}


int %test2(bool %C) {
	br bool %C, label %T, label %Cont
T:
	br label %Cont
Cont:
	%P = phi int* [%X, %0], [%Y, %T]
	%V = load int* %P
	ret int %V
}





