; This shouldn't crash
; RUN: llc < %s -march=alpha

@.str_4 = external global [44 x i8]             ; <[44 x i8]*> [#uses=0]

declare void @printf(i32, ...)

define void @main() {
entry:
        %tmp.11861 = icmp slt i64 0, 1          ; <i1> [#uses=1]
        %tmp.19466 = icmp slt i64 0, 1          ; <i1> [#uses=1]
        %tmp.21571 = icmp slt i64 0, 1          ; <i1> [#uses=1]
        %tmp.36796 = icmp slt i64 0, 1          ; <i1> [#uses=1]
        br i1 %tmp.11861, label %loopexit.2, label %no_exit.2

no_exit.2:              ; preds = %entry
        ret void

loopexit.2:             ; preds = %entry
        br i1 %tmp.19466, label %loopexit.3, label %no_exit.3.preheader

no_exit.3.preheader:            ; preds = %loopexit.2
        ret void

loopexit.3:             ; preds = %loopexit.2
        br i1 %tmp.21571, label %no_exit.6, label %no_exit.4

no_exit.4:              ; preds = %loopexit.3
        ret void

no_exit.6:              ; preds = %no_exit.6, %loopexit.3
        %tmp.30793 = icmp sgt i64 0, 0          ; <i1> [#uses=1]
        br i1 %tmp.30793, label %loopexit.6, label %no_exit.6

loopexit.6:             ; preds = %no_exit.6
        %Z.1 = select i1 %tmp.36796, double 1.000000e+00, double 0x3FEFFF7CEDE74EAE; <double> [#uses=2]
        tail call void (i32, ...)* @printf( i32 0, i64 0, i64 0, i64 0, double 1.000000e+00, double 1.000000e+00, double %Z.1, double %Z.1 )
        ret void
}