; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=riscv64 -mattr=+v,+m < %s \
; RUN:     | FileCheck %s


@_ZTIi = external dso_local constant ptr

declare void @_Z3fooiiiiiiiiiiPi(i32 signext %0, i32 signext %1, i32 signext %2, i32 signext %3, i32 signext %4, i32 signext %5, i32 signext %6, i32 signext %7, i32 %8, i32 %9, i32 %10)

declare dso_local ptr @__cxa_allocate_exception(i64)

declare dso_local void @__cxa_throw(ptr, ptr, ptr)

define signext i32 @foo() #1 personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: foo:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addi sp, sp, -32
; CHECK-NEXT:    .cfi_def_cfa_offset 32
; CHECK-NEXT:    sd ra, 24(sp) # 8-byte Folded Spill
; CHECK-NEXT:    sd s0, 16(sp) # 8-byte Folded Spill
; CHECK-NEXT:    sd s1, 8(sp) # 8-byte Folded Spill
; CHECK-NEXT:    .cfi_offset ra, -8
; CHECK-NEXT:    .cfi_offset s0, -16
; CHECK-NEXT:    .cfi_offset s1, -24
; CHECK-NEXT:    addi s0, sp, 32
; CHECK-NEXT:    .cfi_def_cfa s0, 0
; CHECK-NEXT:  .Ltmp0:
; CHECK-NEXT:    addi sp, sp, -32
; CHECK-NEXT:    li a0, 0
; CHECK-NEXT:    li a1, 0
; CHECK-NEXT:    li a2, 0
; CHECK-NEXT:    li a3, 0
; CHECK-NEXT:    li a4, 0
; CHECK-NEXT:    li a5, 0
; CHECK-NEXT:    li a6, 0
; CHECK-NEXT:    li a7, 0
; CHECK-NEXT:    call _Z3fooiiiiiiiiiiPi@plt
; CHECK-NEXT:    addi sp, sp, 32
; CHECK-NEXT:  .Ltmp1:
; CHECK-NEXT:  # %bb.1: # %try.cont.unreachable
; CHECK-NEXT:  .LBB0_2: # %lpad
; CHECK-NEXT:  .Ltmp2:
; CHECK-NEXT:    sext.w a1, a1
; CHECK-NEXT:    li a2, 1
; CHECK-NEXT:    bne a1, a2, .LBB0_4
; CHECK-NEXT:  # %bb.3: # %catch
; CHECK-NEXT:    call __cxa_begin_catch@plt
; CHECK-NEXT:    lw s1, 0(a0)
; CHECK-NEXT:    call __cxa_end_catch@plt
; CHECK-NEXT:    mv a0, s1
; CHECK-NEXT:    addi sp, s0, -32
; CHECK-NEXT:    ld ra, 24(sp) # 8-byte Folded Reload
; CHECK-NEXT:    ld s0, 16(sp) # 8-byte Folded Reload
; CHECK-NEXT:    ld s1, 8(sp) # 8-byte Folded Reload
; CHECK-NEXT:    addi sp, sp, 32
; CHECK-NEXT:    ret
; CHECK-NEXT:  .LBB0_4: # %ehcleanup
; CHECK-NEXT:    call _Unwind_Resume@plt
entry:
  invoke void @_Z3fooiiiiiiiiiiPi(i32 signext poison, i32 signext poison, i32 signext poison, i32 signext poison, i32 signext poison, i32 signext poison, i32 signext poison, i32 signext poison, i32 poison, i32 poison, i32 poison)
          to label %try.cont.unreachable unwind label %lpad

lpad:
  %0 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIi
  %1 = extractvalue { ptr, i32 } %0, 1
  %2 = call i32 @llvm.eh.typeid.for(ptr nonnull @_ZTIi)
  %matches = icmp eq i32 %1, %2
  br i1 %matches, label %catch, label %ehcleanup

catch:
  %3 = extractvalue { ptr, i32 } %0, 0
  %4 = call ptr @__cxa_begin_catch(ptr %3)
  %5 = load i32, ptr %4, align 4
  call void @__cxa_end_catch()
  ret i32 %5

try.cont.unreachable:
  unreachable

ehcleanup:
  resume { ptr, i32 } %0
}

declare i32 @__gxx_personality_v0(...)

declare i32 @llvm.eh.typeid.for(ptr)

declare ptr @__cxa_begin_catch(ptr)
declare void @__cxa_end_catch()

attributes #1 = { "frame-pointer"="all"}
