; RUN: llvm-upgrade < %s | llvm-as | llc -o /dev/null -f

; Test that select of a select works

int %ic_test(double %p.0.2.0.val, double %p.0.2.1.val, double %p.0.2.2.val, %typedef.tree* %t) {
        %result.1.0 = cast bool false to int            ; <int> [#uses=1]
        %tmp.55 = setge double 0.000000e+00, 1.000000e+00               ; <bool> [#uses=1]
        %tmp.66 = div double 0.000000e+00, 0.000000e+00         ; <double> [#uses=1]
	br label %N
N:
        %result.1.1 = select bool %tmp.55, int 0, int %result.1.0               ; <int> [#uses=1]
        %tmp.75 = setge double %tmp.66, 1.000000e+00            ; <bool> [#uses=1]
        %retval1 = select bool %tmp.75, int 0, int %result.1.1          ; <int> [#uses=1]
        ret int %retval1
}



Fix this test case. It is no longer permissible to have undefined types in function parameters. Fix by just defining the type as opaque.
; RUN: llvm-upgrade < %s | llvm-as | llc -o /dev/null -f

; Test that select of a select works

%typedef.tree = type opaque

implementation

int %ic_test(double %p.0.2.0.val, double %p.0.2.1.val, double %p.0.2.2.val, %typedef.tree* %t) {
        %result.1.0 = cast bool false to int            ; <int> [#uses=1]
        %tmp.55 = setge double 0.000000e+00, 1.000000e+00               ; <bool> [#uses=1]
        %tmp.66 = div double 0.000000e+00, 0.000000e+00         ; <double> [#uses=1]
	br label %N
N:
        %result.1.1 = select bool %tmp.55, int 0, int %result.1.0               ; <int> [#uses=1]
        %tmp.75 = setge double %tmp.66, 1.000000e+00            ; <bool> [#uses=1]
        %retval1 = select bool %tmp.75, int 0, int %result.1.1          ; <int> [#uses=1]
        ret int %retval1
}