llvm/llvm/test/CodeGen/AArch64/swift-error-unreachable-use.ll

; RUN: llc -mtriple aarch64-unknown-windows-msvc %s -filetype asm -o - | FileCheck %s
; RUN: llc -mtriple aarch64-unknown-linux-gnu %s -filetype asm -o - | FileCheck %s
; RUN: llc -mtriple aarch64-apple-macosx %s -filetype asm -o - | FileCheck %s
; Regression test for https://github.com/llvm/llvm-project/issues/59751

define void @"func"(ptr swifterror %0) #0 {
; CHECK-LABEL: func:
; CHECK:       {{.*}}%bb.0:
; CHECK-NEXT:    b {{\.?}}LBB0_2
; CHECK-NEXT:  {{\.?}}LBB0_1:{{.*}}%thirtythree
; CHECK-NEXT:  {{.*}}=>This Inner Loop Header: Depth=1
; CHECK-NEXT:    b {{\.?}}LBB0_1
; CHECK-NEXT:  {{\.?}}LBB0_2:{{.*}}%thirtyeight
; CHECK-NEXT:    b {{\.?}}LBB0_3
; CHECK-NEXT:  {{\.?}}LBB0_3:{{.*}}%thirtythree.preheader
; CHECK-NEXT:    b {{\.?}}LBB0_1
  br label %thirtyeight

five:
  br label %UelOc2l.exit

common.ret:
  ret void

UelOc2l.exit:
  %a = getelementptr inbounds [754 x ptr], ptr undef, i32 undef, i32 undef
  %b = load ptr, ptr %a, align 8
  %c = bitcast ptr %b to ptr
  call void %c()
  br label %common.ret

thirtythree:
  br i1 false, label %UelOc2l.exit, label %thirtythree

thirtyeight:
  br i1 undef, label %thirtyeight, label %thirtythree
}

attributes #0 = { noinline optnone }