; RUN: llc < %s -mtriple=x86_64-apple-darwin -x86-asm-syntax=intel | not grep {lea\[\[:space:\]\]R}

	%struct.AGenericCall = type { %struct.AGenericManager*, %struct.ComponentParameters*, i32* }
	%struct.AGenericManager = type <{ i8 }>
	%struct.ComponentInstanceRecord = type opaque
	%struct.ComponentParameters = type { [1 x i64] }

define i32 @_ZN12AGenericCall10MapIDPtrAtEsRP23ComponentInstanceRecord(%struct.AGenericCall* %this, i16 signext  %param, %struct.ComponentInstanceRecord** %instance) {
entry:
	%tmp4 = icmp slt i16 %param, 0		; <i1> [#uses=1]
	br i1 %tmp4, label %cond_true, label %cond_next

cond_true:		; preds = %entry
	%tmp1415 = shl i16 %param, 3		; <i16> [#uses=1]
	%tmp17 = getelementptr %struct.AGenericCall* %this, i32 0, i32 1		; <%struct.ComponentParameters**> [#uses=1]
	%tmp18 = load %struct.ComponentParameters** %tmp17, align 8		; <%struct.ComponentParameters*> [#uses=1]
	%tmp1920 = bitcast %struct.ComponentParameters* %tmp18 to i8*		; <i8*> [#uses=1]
	%tmp212223 = sext i16 %tmp1415 to i64		; <i64> [#uses=1]
	%tmp24 = getelementptr i8* %tmp1920, i64 %tmp212223		; <i8*> [#uses=1]
	%tmp2425 = bitcast i8* %tmp24 to i64*		; <i64*> [#uses=1]
	%tmp28 = load i64* %tmp2425, align 8		; <i64> [#uses=1]
	%tmp2829 = inttoptr i64 %tmp28 to i32*		; <i32*> [#uses=1]
	%tmp31 = getelementptr %struct.AGenericCall* %this, i32 0, i32 2		; <i32**> [#uses=1]
	store i32* %tmp2829, i32** %tmp31, align 8
	br label %cond_next

cond_next:		; preds = %cond_true, %entry
	%tmp4243 = shl i16 %param, 3		; <i16> [#uses=1]
	%tmp46 = getelementptr %struct.AGenericCall* %this, i32 0, i32 1		; <%struct.ComponentParameters**> [#uses=1]
	%tmp47 = load %struct.ComponentParameters** %tmp46, align 8		; <%struct.ComponentParameters*> [#uses=1]
	%tmp4849 = bitcast %struct.ComponentParameters* %tmp47 to i8*		; <i8*> [#uses=1]
	%tmp505152 = sext i16 %tmp4243 to i64		; <i64> [#uses=1]
	%tmp53 = getelementptr i8* %tmp4849, i64 %tmp505152		; <i8*> [#uses=1]
	%tmp5354 = bitcast i8* %tmp53 to i64*		; <i64*> [#uses=1]
	%tmp58 = load i64* %tmp5354, align 8		; <i64> [#uses=1]
	%tmp59 = icmp eq i64 %tmp58, 0		; <i1> [#uses=1]
	br i1 %tmp59, label %UnifiedReturnBlock, label %cond_true63

cond_true63:		; preds = %cond_next
	%tmp65 = getelementptr %struct.AGenericCall* %this, i32 0, i32 0		; <%struct.AGenericManager**> [#uses=1]
	%tmp66 = load %struct.AGenericManager** %tmp65, align 8		; <%struct.AGenericManager*> [#uses=1]
	%tmp69 = tail call i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord( %struct.AGenericManager* %tmp66, %struct.ComponentInstanceRecord** %instance )		; <i32> [#uses=1]
	ret i32 %tmp69

UnifiedReturnBlock:		; preds = %cond_next
	ret i32 undef
}

declare i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord(%struct.AGenericManager*, %struct.ComponentInstanceRecord**)
