; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s | FileCheck %s
; Calls to abort should all be merged

; ModuleID = '5898899.c'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
target triple = "x86_64-apple-darwin8"
	%struct.BoundaryAlignment = type { [3 x i8], i8, i16, i16, i8, [2 x i8] }

define void @passing2(i64 %str.0, i64 %str.1, i16 signext  %s, i32 %j, i8 signext  %c, i16 signext  %t, i16 signext  %u, i8 signext  %d) nounwind optsize {
; CHECK-LABEL: passing2:
; CHECK:       ## %bb.0: ## %entry
; CHECK-NEXT:    subq $40, %rsp
; CHECK-NEXT:    movq %rsi, %rax
; CHECK-NEXT:    movq %rdi, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    movb %al, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    movb %ah, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    shrq $16, %rsi
; CHECK-NEXT:    movb %sil, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    shrq $24, %rax
; CHECK-NEXT:    movb %al, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    movw %dx, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    movl %ecx, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    movb %r8b, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    movw %r9w, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    shll $14, %edi
; CHECK-NEXT:    sarl $23, %edi
; CHECK-NEXT:    cmpl %ecx, %edi
; CHECK-NEXT:    jne LBB0_6
; CHECK-NEXT:  ## %bb.1: ## %bb27
; CHECK-NEXT:    movb {{[0-9]+}}(%rsp), %al
; CHECK-NEXT:    cmpb {{[0-9]+}}(%rsp), %al
; CHECK-NEXT:    jne LBB0_6
; CHECK-NEXT:  ## %bb.2: ## %bb35
; CHECK-NEXT:    movl {{[0-9]+}}(%rsp), %eax
; CHECK-NEXT:    shll $7, %eax
; CHECK-NEXT:    cwtl
; CHECK-NEXT:    shrl $7, %eax
; CHECK-NEXT:    cmpw {{[0-9]+}}(%rsp), %ax
; CHECK-NEXT:    jne LBB0_6
; CHECK-NEXT:  ## %bb.3: ## %bb51
; CHECK-NEXT:    movl {{[0-9]+}}(%rsp), %eax
; CHECK-NEXT:    shll $7, %eax
; CHECK-NEXT:    cwtl
; CHECK-NEXT:    shrl $7, %eax
; CHECK-NEXT:    cmpw {{[0-9]+}}(%rsp), %ax
; CHECK-NEXT:    jne LBB0_6
; CHECK-NEXT:  ## %bb.4: ## %bb67
; CHECK-NEXT:    movb {{[0-9]+}}(%rsp), %al
; CHECK-NEXT:    cmpb {{[0-9]+}}(%rsp), %al
; CHECK-NEXT:    jne LBB0_6
; CHECK-NEXT:  ## %bb.5: ## %bb75
; CHECK-NEXT:    addq $40, %rsp
; CHECK-NEXT:    retq
; CHECK-NEXT:  LBB0_6: ## %bb
; CHECK-NEXT:    xorl %eax, %eax
; CHECK-NEXT:    callq _abort
entry:
	%str_addr = alloca %struct.BoundaryAlignment		; <%struct.BoundaryAlignment*> [#uses=7]
	%s_addr = alloca i16		; <i16*> [#uses=1]
	%j_addr = alloca i32		; <i32*> [#uses=2]
	%c_addr = alloca i8		; <i8*> [#uses=2]
	%t_addr = alloca i16		; <i16*> [#uses=2]
	%u_addr = alloca i16		; <i16*> [#uses=2]
	%d_addr = alloca i8		; <i8*> [#uses=2]
	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
	%tmp = bitcast %struct.BoundaryAlignment* %str_addr to { i64, i64 }*		; <{ i64, i64 }*> [#uses=1]
	%tmp1 = getelementptr { i64, i64 }, { i64, i64 }* %tmp, i32 0, i32 0		; <i64*> [#uses=1]
	store i64 %str.0, i64* %tmp1
	%tmp2 = bitcast %struct.BoundaryAlignment* %str_addr to { i64, i64 }*		; <{ i64, i64 }*> [#uses=1]
	%tmp3 = getelementptr { i64, i64 }, { i64, i64 }* %tmp2, i32 0, i32 1		; <i64*> [#uses=1]
	%bc = bitcast i64* %tmp3 to i8*		; <i8*> [#uses=2]
	%byte = trunc i64 %str.1 to i8		; <i8> [#uses=1]
	store i8 %byte, i8* %bc
	%shft = lshr i64 %str.1, 8		; <i64> [#uses=2]
	%Loc = getelementptr i8, i8* %bc, i32 1		; <i8*> [#uses=2]
	%byte4 = trunc i64 %shft to i8		; <i8> [#uses=1]
	store i8 %byte4, i8* %Loc
	%shft5 = lshr i64 %shft, 8		; <i64> [#uses=2]
	%Loc6 = getelementptr i8, i8* %Loc, i32 1		; <i8*> [#uses=2]
	%byte7 = trunc i64 %shft5 to i8		; <i8> [#uses=1]
	store i8 %byte7, i8* %Loc6
	%shft8 = lshr i64 %shft5, 8		; <i64> [#uses=2]
	%Loc9 = getelementptr i8, i8* %Loc6, i32 1		; <i8*> [#uses=2]
	%byte10 = trunc i64 %shft8 to i8		; <i8> [#uses=1]
	store i8 %byte10, i8* %Loc9
	%shft11 = lshr i64 %shft8, 8		; <i64> [#uses=0]
	%Loc12 = getelementptr i8, i8* %Loc9, i32 1		; <i8*> [#uses=0]
	store i16 %s, i16* %s_addr
	store i32 %j, i32* %j_addr
	store i8 %c, i8* %c_addr
	store i16 %t, i16* %t_addr
	store i16 %u, i16* %u_addr
	store i8 %d, i8* %d_addr
	%tmp13 = getelementptr %struct.BoundaryAlignment, %struct.BoundaryAlignment* %str_addr, i32 0, i32 0		; <[3 x i8]*> [#uses=1]
	%tmp1314 = bitcast [3 x i8]* %tmp13 to i32*		; <i32*> [#uses=1]
	%tmp15 = load i32, i32* %tmp1314, align 4		; <i32> [#uses=1]
	%tmp16 = shl i32 %tmp15, 14		; <i32> [#uses=1]
	%tmp17 = ashr i32 %tmp16, 23		; <i32> [#uses=1]
	%tmp1718 = trunc i32 %tmp17 to i16		; <i16> [#uses=1]
	%sextl = shl i16 %tmp1718, 7		; <i16> [#uses=1]
	%sextr = ashr i16 %sextl, 7		; <i16> [#uses=2]
	%sextl19 = shl i16 %sextr, 7		; <i16> [#uses=1]
	%sextr20 = ashr i16 %sextl19, 7		; <i16> [#uses=0]
	%sextl21 = shl i16 %sextr, 7		; <i16> [#uses=1]
	%sextr22 = ashr i16 %sextl21, 7		; <i16> [#uses=1]
	%sextr2223 = sext i16 %sextr22 to i32		; <i32> [#uses=1]
	%tmp24 = load i32, i32* %j_addr, align 4		; <i32> [#uses=1]
	%tmp25 = icmp ne i32 %sextr2223, %tmp24		; <i1> [#uses=1]
	%tmp2526 = zext i1 %tmp25 to i8		; <i8> [#uses=1]
	%toBool = icmp ne i8 %tmp2526, 0		; <i1> [#uses=1]
	br i1 %toBool, label %bb, label %bb27

bb:		; preds = %entry
	call void (...) @abort( ) noreturn nounwind
	unreachable

bb27:		; preds = %entry
	%tmp28 = getelementptr %struct.BoundaryAlignment, %struct.BoundaryAlignment* %str_addr, i32 0, i32 1		; <i8*> [#uses=1]
	%tmp29 = load i8, i8* %tmp28, align 4		; <i8> [#uses=1]
	%tmp30 = load i8, i8* %c_addr, align 1		; <i8> [#uses=1]
	%tmp31 = icmp ne i8 %tmp29, %tmp30		; <i1> [#uses=1]
	%tmp3132 = zext i1 %tmp31 to i8		; <i8> [#uses=1]
	%toBool33 = icmp ne i8 %tmp3132, 0		; <i1> [#uses=1]
	br i1 %toBool33, label %bb34, label %bb35

bb34:		; preds = %bb27
	call void (...) @abort( ) noreturn nounwind
	unreachable

bb35:		; preds = %bb27
	%tmp36 = getelementptr %struct.BoundaryAlignment, %struct.BoundaryAlignment* %str_addr, i32 0, i32 2		; <i16*> [#uses=1]
	%tmp37 = load i16, i16* %tmp36, align 4		; <i16> [#uses=1]
	%tmp38 = shl i16 %tmp37, 7		; <i16> [#uses=1]
	%tmp39 = ashr i16 %tmp38, 7		; <i16> [#uses=1]
	%sextl40 = shl i16 %tmp39, 7		; <i16> [#uses=1]
	%sextr41 = ashr i16 %sextl40, 7		; <i16> [#uses=2]
	%sextl42 = shl i16 %sextr41, 7		; <i16> [#uses=1]
	%sextr43 = ashr i16 %sextl42, 7		; <i16> [#uses=0]
	%sextl44 = shl i16 %sextr41, 7		; <i16> [#uses=1]
	%sextr45 = ashr i16 %sextl44, 7		; <i16> [#uses=1]
	%tmp46 = load i16, i16* %t_addr, align 2		; <i16> [#uses=1]
	%tmp47 = icmp ne i16 %sextr45, %tmp46		; <i1> [#uses=1]
	%tmp4748 = zext i1 %tmp47 to i8		; <i8> [#uses=1]
	%toBool49 = icmp ne i8 %tmp4748, 0		; <i1> [#uses=1]
	br i1 %toBool49, label %bb50, label %bb51

bb50:		; preds = %bb35
	call void (...) @abort( ) noreturn nounwind
	unreachable

bb51:		; preds = %bb35
	%tmp52 = getelementptr %struct.BoundaryAlignment, %struct.BoundaryAlignment* %str_addr, i32 0, i32 3		; <i16*> [#uses=1]
	%tmp53 = load i16, i16* %tmp52, align 4		; <i16> [#uses=1]
	%tmp54 = shl i16 %tmp53, 7		; <i16> [#uses=1]
	%tmp55 = ashr i16 %tmp54, 7		; <i16> [#uses=1]
	%sextl56 = shl i16 %tmp55, 7		; <i16> [#uses=1]
	%sextr57 = ashr i16 %sextl56, 7		; <i16> [#uses=2]
	%sextl58 = shl i16 %sextr57, 7		; <i16> [#uses=1]
	%sextr59 = ashr i16 %sextl58, 7		; <i16> [#uses=0]
	%sextl60 = shl i16 %sextr57, 7		; <i16> [#uses=1]
	%sextr61 = ashr i16 %sextl60, 7		; <i16> [#uses=1]
	%tmp62 = load i16, i16* %u_addr, align 2		; <i16> [#uses=1]
	%tmp63 = icmp ne i16 %sextr61, %tmp62		; <i1> [#uses=1]
	%tmp6364 = zext i1 %tmp63 to i8		; <i8> [#uses=1]
	%toBool65 = icmp ne i8 %tmp6364, 0		; <i1> [#uses=1]
	br i1 %toBool65, label %bb66, label %bb67

bb66:		; preds = %bb51
	call void (...) @abort( ) noreturn nounwind
	unreachable

bb67:		; preds = %bb51
	%tmp68 = getelementptr %struct.BoundaryAlignment, %struct.BoundaryAlignment* %str_addr, i32 0, i32 4		; <i8*> [#uses=1]
	%tmp69 = load i8, i8* %tmp68, align 4		; <i8> [#uses=1]
	%tmp70 = load i8, i8* %d_addr, align 1		; <i8> [#uses=1]
	%tmp71 = icmp ne i8 %tmp69, %tmp70		; <i1> [#uses=1]
	%tmp7172 = zext i1 %tmp71 to i8		; <i8> [#uses=1]
	%toBool73 = icmp ne i8 %tmp7172, 0		; <i1> [#uses=1]
	br i1 %toBool73, label %bb74, label %bb75

bb74:		; preds = %bb67
	call void (...) @abort( ) noreturn nounwind
	unreachable

bb75:		; preds = %bb67
	br label %return

return:		; preds = %bb75
	ret void
}

declare void @abort(...) noreturn nounwind
