; RUN: llc < %s

	%struct..0anon = type { i32 }
	%struct.rtx_def = type { i16, i8, i8, [1 x %struct..0anon] }

define fastcc void @immed_double_const(i32 %i0, i32 %i1) {
entry:
	%tmp1 = load i32* null		; <i32> [#uses=1]
	switch i32 %tmp1, label %bb103 [
		 i32 1, label %bb
		 i32 3, label %bb
	]
bb:		; preds = %entry, %entry
	%tmp14 = icmp sgt i32 0, 31		; <i1> [#uses=1]
	br i1 %tmp14, label %cond_next77, label %cond_next17
cond_next17:		; preds = %bb
	ret void
cond_next77:		; preds = %bb
	%tmp79.not = icmp ne i32 %i1, 0		; <i1> [#uses=1]
	%tmp84 = icmp slt i32 %i0, 0		; <i1> [#uses=2]
	%bothcond1 = or i1 %tmp79.not, %tmp84		; <i1> [#uses=1]
	br i1 %bothcond1, label %bb88, label %bb99
bb88:		; preds = %cond_next77
	%bothcond2 = and i1 false, %tmp84		; <i1> [#uses=0]
	ret void
bb99:		; preds = %cond_next77
	ret void
bb103:		; preds = %entry
	ret void
}
