; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s

; This test hung in the BranchFolding pass during asm-goto bring up

@e = dso_local global i32 0
@j = dso_local global i32 0

define dso_local void @n(i32* %o, i32 %p, i32 %u) nounwind {
; CHECK-LABEL: n:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rbp
; CHECK-NEXT:    pushq %r15
; CHECK-NEXT:    pushq %r14
; CHECK-NEXT:    pushq %r13
; CHECK-NEXT:    pushq %r12
; CHECK-NEXT:    pushq %rbx
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    movl %edx, %ebx
; CHECK-NEXT:    movl %esi, %r12d
; CHECK-NEXT:    movq %rdi, %r15
; CHECK-NEXT:    callq c
; CHECK-NEXT:    movl %eax, %r13d
; CHECK-NEXT:    movq %r15, %rdi
; CHECK-NEXT:    callq l
; CHECK-NEXT:    testl %eax, %eax
; CHECK-NEXT:    jne .LBB0_10
; CHECK-NEXT:  # %bb.1: # %if.end
; CHECK-NEXT:    movl %ebx, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill
; CHECK-NEXT:    cmpl $0, e(%rip)
; CHECK-NEXT:    # implicit-def: $ebx
; CHECK-NEXT:    # implicit-def: $r14d
; CHECK-NEXT:    je .LBB0_4
; CHECK-NEXT:  # %bb.2: # %if.then4
; CHECK-NEXT:    movslq %r12d, %rdi
; CHECK-NEXT:    callq m
; CHECK-NEXT:    # implicit-def: $ebx
; CHECK-NEXT:    # implicit-def: $ebp
; CHECK-NEXT:  .LBB0_3: # %r
; CHECK-NEXT:    callq c
; CHECK-NEXT:    movl %ebp, %r14d
; CHECK-NEXT:  .LBB0_4: # %if.end8
; CHECK-NEXT:    movl %ebx, %edi
; CHECK-NEXT:    callq i
; CHECK-NEXT:    movl %eax, %ebp
; CHECK-NEXT:    orl %r14d, %ebp
; CHECK-NEXT:    testl %r13d, %r13d
; CHECK-NEXT:    je .LBB0_6
; CHECK-NEXT:  # %bb.5:
; CHECK-NEXT:    andl $4, %ebx
; CHECK-NEXT:    jmp .LBB0_3
; CHECK-NEXT:  .LBB0_6: # %if.end12
; CHECK-NEXT:    testl %ebp, %ebp
; CHECK-NEXT:    je .LBB0_9
; CHECK-NEXT:  # %bb.7: # %if.then14
; CHECK-NEXT:    movl {{[-0-9]+}}(%r{{[sb]}}p), %eax # 4-byte Reload
; CHECK-NEXT:    #APP
; CHECK-NEXT:    #NO_APP
; CHECK-NEXT:    jmp .LBB0_10
; CHECK-NEXT:  .Ltmp0: # Block address taken
; CHECK-NEXT:  # %bb.8: # %if.then20.critedge
; CHECK-NEXT:    movl j(%rip), %edi
; CHECK-NEXT:    movslq %eax, %rcx
; CHECK-NEXT:    movl $1, %esi
; CHECK-NEXT:    movq %r15, %rdx
; CHECK-NEXT:    addq $8, %rsp
; CHECK-NEXT:    popq %rbx
; CHECK-NEXT:    popq %r12
; CHECK-NEXT:    popq %r13
; CHECK-NEXT:    popq %r14
; CHECK-NEXT:    popq %r15
; CHECK-NEXT:    popq %rbp
; CHECK-NEXT:    jmp k # TAILCALL
; CHECK-NEXT:  .LBB0_9: # %if.else
; CHECK-NEXT:    incq 0
; CHECK-NEXT:  .LBB0_10: # %cleanup
; CHECK-NEXT:    addq $8, %rsp
; CHECK-NEXT:    popq %rbx
; CHECK-NEXT:    popq %r12
; CHECK-NEXT:    popq %r13
; CHECK-NEXT:    popq %r14
; CHECK-NEXT:    popq %r15
; CHECK-NEXT:    popq %rbp
; CHECK-NEXT:    retq
entry:
  %call = tail call i32 @c()
  %call1 = tail call i32 @l(i32* %o)
  %tobool = icmp eq i32 %call1, 0
  br i1 %tobool, label %if.end, label %cleanup

if.end:                                           ; preds = %entry
  %0 = load i32, i32* @e
  %tobool3 = icmp eq i32 %0, 0
  br i1 %tobool3, label %if.end8, label %if.then4, !prof !0

if.then4:                                         ; preds = %if.end
  %conv5 = sext i32 %p to i64
  %call6 = tail call i32 @m(i64 %conv5)
  br label %r

r:                                                ; preds = %if.end8, %if.then4
  %flags.0 = phi i32 [ undef, %if.then4 ], [ %and, %if.end8 ]
  %major.0 = phi i32 [ undef, %if.then4 ], [ %or, %if.end8 ]
  %call7 = tail call i32 @c()
  br label %if.end8

if.end8:                                          ; preds = %r, %if.end
  %flags.1 = phi i32 [ %flags.0, %r ], [ undef, %if.end ]
  %major.1 = phi i32 [ %major.0, %r ], [ undef, %if.end ]
  %call9 = tail call i32 @i(i32 %flags.1)
  %or = or i32 %call9, %major.1
  %and = and i32 %flags.1, 4
  %tobool10 = icmp eq i32 %call, 0
  br i1 %tobool10, label %if.end12, label %r

if.end12:                                         ; preds = %if.end8
  %tobool13 = icmp eq i32 %or, 0
  br i1 %tobool13, label %if.else, label %if.then14

if.then14:                                        ; preds = %if.end12
  callbr void asm sideeffect "", "X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@n, %if.then20.critedge))
          to label %cleanup [label %if.then20.critedge]

if.then20.critedge:                               ; preds = %if.then14
  %1 = load i32, i32* @j
  %conv21 = sext i32 %u to i64
  %call22 = tail call i32 @k(i32 %1, i64 1, i32* %o, i64 %conv21)
  br label %cleanup

if.else:                                          ; preds = %if.end12
  %2 = load i64, i64* null
  %inc = add i64 %2, 1
  store i64 %inc, i64* null
  br label %cleanup

cleanup:                                          ; preds = %if.else, %if.then20.critedge, %if.then14, %entry
  ret void
}

declare dso_local i32 @c()

declare dso_local i32 @l(i32*)

declare dso_local i32 @m(i64)

declare dso_local i32 @i(i32)

declare dso_local i32 @k(i32, i64, i32*, i64)

!0 = !{!"branch_weights", i32 2000, i32 1}
