; RUN: llc < %s
; PR1011	
%struct.mng_data = type { i8* (%struct.mng_data*, i32)*, i32, i32, i32, i8, i8, i32, i32, i32, i32, i32 }

define void @mng_display_bgr565() {
entry:
	br i1 false, label %bb.preheader, label %return

bb.preheader:		; preds = %entry
	br i1 false, label %cond_true48, label %cond_next80

cond_true48:		; preds = %bb.preheader
	%tmp = load i8* null		; <i8> [#uses=1]
	%tmp51 = zext i8 %tmp to i16		; <i16> [#uses=1]
	%tmp99 = load i8* null		; <i8> [#uses=1]
	%tmp54 = bitcast i8 %tmp99 to i8		; <i8> [#uses=1]
	%tmp54.upgrd.1 = zext i8 %tmp54 to i32		; <i32> [#uses=1]
	%tmp55 = lshr i32 %tmp54.upgrd.1, 3		; <i32> [#uses=1]
	%tmp55.upgrd.2 = trunc i32 %tmp55 to i16		; <i16> [#uses=1]
	%tmp52 = shl i16 %tmp51, 5		; <i16> [#uses=1]
	%tmp56 = and i16 %tmp55.upgrd.2, 28		; <i16> [#uses=1]
	%tmp57 = or i16 %tmp56, %tmp52		; <i16> [#uses=1]
	%tmp60 = zext i16 %tmp57 to i32		; <i32> [#uses=1]
	%tmp62 = xor i32 0, 65535		; <i32> [#uses=1]
	%tmp63 = mul i32 %tmp60, %tmp62		; <i32> [#uses=1]
	%tmp65 = add i32 0, %tmp63		; <i32> [#uses=1]
	%tmp69 = add i32 0, %tmp65		; <i32> [#uses=1]
	%tmp70 = lshr i32 %tmp69, 16		; <i32> [#uses=1]
	%tmp70.upgrd.3 = trunc i32 %tmp70 to i16		; <i16> [#uses=1]
	%tmp75 = lshr i16 %tmp70.upgrd.3, 8		; <i16> [#uses=1]
	%tmp75.upgrd.4 = trunc i16 %tmp75 to i8		; <i8> [#uses=1]
	%tmp76 = lshr i8 %tmp75.upgrd.4, 5		; <i8> [#uses=1]
	store i8 %tmp76, i8* null
	ret void

cond_next80:		; preds = %bb.preheader
	ret void

return:		; preds = %entry
	ret void
}
