; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
; rdar://6522427
; This command line used to crash due to dangling nodes left after PreprocessISelDAG
; RUN: llc < %s -mtriple=x86_64-apple-darwin -pre-RA-sched=linearize | FileCheck %s --check-prefix=pre-RA

	%"struct.clang::Action" = type { %"struct.clang::ActionBase" }
	%"struct.clang::ActionBase" = type { i32 (...)** }
	%"struct.clang::ActionBase::ActionResult<0u>" = type { i8*, i8 }
@NumTrials = internal global i32 10000000		; <i32*> [#uses=2]
@llvm.used = appending global [1 x i8*] [ i8* bitcast (void (i8*, %"struct.clang::Action"*)* @_Z25RawPointerPerformanceTestPvRN5clang6ActionE to i8*) ], section "llvm.metadata"		; <[1 x i8*]*> [#uses=0]

define void @_Z25RawPointerPerformanceTestPvRN5clang6ActionE(i8* %Val, %"struct.clang::Action"* %Actions) nounwind {
; CHECK-LABEL: _Z25RawPointerPerformanceTestPvRN5clang6ActionE:
; CHECK:       ## %bb.0: ## %entry
; CHECK-NEXT:    pushq %rbp
; CHECK-NEXT:    pushq %rbx
; CHECK-NEXT:    subq $24, %rsp
; CHECK-NEXT:    cmpl $0, {{.*}}(%rip)
; CHECK-NEXT:    je LBB0_3
; CHECK-NEXT:  ## %bb.1: ## %bb.nph
; CHECK-NEXT:    movq %rsi, %rbx
; CHECK-NEXT:    movq %rdi, %rax
; CHECK-NEXT:    xorl %ebp, %ebp
; CHECK-NEXT:    .p2align 4, 0x90
; CHECK-NEXT:  LBB0_2: ## %bb
; CHECK-NEXT:    ## =>This Inner Loop Header: Depth=1
; CHECK-NEXT:    movq (%rbx), %rcx
; CHECK-NEXT:    movq %rbx, %rdi
; CHECK-NEXT:    movq %rax, %rsi
; CHECK-NEXT:    callq *560(%rcx)
; CHECK-NEXT:    movq %rax, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    movq %rdx, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    incl %ebp
; CHECK-NEXT:    cmpl {{.*}}(%rip), %ebp
; CHECK-NEXT:    jb LBB0_2
; CHECK-NEXT:  LBB0_3: ## %return
; CHECK-NEXT:    addq $24, %rsp
; CHECK-NEXT:    popq %rbx
; CHECK-NEXT:    popq %rbp
; CHECK-NEXT:    retq
;
; pre-RA-LABEL: _Z25RawPointerPerformanceTestPvRN5clang6ActionE:
; pre-RA:       ## %bb.0: ## %entry
; pre-RA-NEXT:    pushq %rbp
; pre-RA-NEXT:    pushq %rbx
; pre-RA-NEXT:    subq $24, %rsp
; pre-RA-NEXT:    cmpl $0, {{.*}}(%rip)
; pre-RA-NEXT:    je LBB0_3
; pre-RA-NEXT:  ## %bb.1: ## %bb.nph
; pre-RA-NEXT:    movq %rsi, %rbx
; pre-RA-NEXT:    movq %rdi, %rax
; pre-RA-NEXT:    xorl %ebp, %ebp
; pre-RA-NEXT:    .p2align 4, 0x90
; pre-RA-NEXT:  LBB0_2: ## %bb
; pre-RA-NEXT:    ## =>This Inner Loop Header: Depth=1
; pre-RA-NEXT:    movq (%rbx), %rcx
; pre-RA-NEXT:    movq %rbx, %rdi
; pre-RA-NEXT:    movq %rax, %rsi
; pre-RA-NEXT:    callq *560(%rcx)
; pre-RA-NEXT:    incl %ebp
; pre-RA-NEXT:    movq %rax, {{[0-9]+}}(%rsp)
; pre-RA-NEXT:    movq %rdx, {{[0-9]+}}(%rsp)
; pre-RA-NEXT:    cmpl {{.*}}(%rip), %ebp
; pre-RA-NEXT:    jb LBB0_2
; pre-RA-NEXT:  LBB0_3: ## %return
; pre-RA-NEXT:    addq $24, %rsp
; pre-RA-NEXT:    popq %rbx
; pre-RA-NEXT:    popq %rbp
; pre-RA-NEXT:    retq
entry:
	%0 = alloca %"struct.clang::ActionBase::ActionResult<0u>", align 8		; <%"struct.clang::ActionBase::ActionResult<0u>"*> [#uses=3]
	%1 = load i32, i32* @NumTrials, align 4		; <i32> [#uses=1]
	%2 = icmp eq i32 %1, 0		; <i1> [#uses=1]
	br i1 %2, label %return, label %bb.nph

bb.nph:		; preds = %entry
	%3 = getelementptr %"struct.clang::Action", %"struct.clang::Action"* %Actions, i64 0, i32 0, i32 0		; <i32 (...)***> [#uses=1]
	%mrv_gep = bitcast %"struct.clang::ActionBase::ActionResult<0u>"* %0 to i64*		; <i64*> [#uses=1]
	%mrv_gep1 = getelementptr %"struct.clang::ActionBase::ActionResult<0u>", %"struct.clang::ActionBase::ActionResult<0u>"* %0, i64 0, i32 1		; <i8*> [#uses=1]
	%4 = bitcast i8* %mrv_gep1 to i64*		; <i64*> [#uses=1]
	%5 = getelementptr %"struct.clang::ActionBase::ActionResult<0u>", %"struct.clang::ActionBase::ActionResult<0u>"* %0, i64 0, i32 0		; <i8**> [#uses=1]
	br label %bb

bb:		; preds = %bb, %bb.nph
	%Trial.01 = phi i32 [ 0, %bb.nph ], [ %12, %bb ]		; <i32> [#uses=1]
	%Val_addr.02 = phi i8* [ %Val, %bb.nph ], [ %11, %bb ]		; <i8*> [#uses=1]
	%6 = load i32 (...)**, i32 (...)*** %3, align 8		; <i32 (...)**> [#uses=1]
	%7 = getelementptr i32 (...)*, i32 (...)** %6, i64 70		; <i32 (...)**> [#uses=1]
	%8 = load i32 (...)*, i32 (...)** %7, align 8		; <i32 (...)*> [#uses=1]
	%9 = bitcast i32 (...)* %8 to { i64, i64 } (%"struct.clang::Action"*, i8*)*		; <{ i64, i64 } (%"struct.clang::Action"*, i8*)*> [#uses=1]
	%10 = call { i64, i64 } %9(%"struct.clang::Action"* %Actions, i8* %Val_addr.02) nounwind		; <{ i64, i64 }> [#uses=2]
	%mrv_gr = extractvalue { i64, i64 } %10, 0		; <i64> [#uses=1]
	store i64 %mrv_gr, i64* %mrv_gep
	%mrv_gr2 = extractvalue { i64, i64 } %10, 1		; <i64> [#uses=1]
	store i64 %mrv_gr2, i64* %4
	%11 = load i8*, i8** %5, align 8		; <i8*> [#uses=1]
	%12 = add i32 %Trial.01, 1		; <i32> [#uses=2]
	%13 = load i32, i32* @NumTrials, align 4		; <i32> [#uses=1]
	%14 = icmp ult i32 %12, %13		; <i1> [#uses=1]
	br i1 %14, label %bb, label %return

return:		; preds = %bb, %entry
	ret void
}
