Amara Emerson f9d69a0ab0 [GlobalISel] Implement support for the "trap-func-name" attribute.
This attribute calls a function instead of emitting a trap instruction.

Differential Revision: https://reviews.llvm.org/D110098
2021-09-20 14:32:01 -07:00

28 lines
923 B
LLVM

; RUN: llc -mtriple=aarch64-windows %s -o -| FileCheck %s
; RUN: llc -mtriple=aarch64-windows -fast-isel %s -o - | FileCheck %s --check-prefix=FASTISEL
; RUN: llc -mtriple=aarch64-windows -global-isel %s -o - | FileCheck %s
; RUN: llc -mtriple=aarch64-linux-gnu %s -o -| FileCheck %s
; RUN: llc -mtriple=arm64-apple-ios -global-isel %s -o - | FileCheck %s
; RUN: llc -mtriple=arm64-apple-macosx -fast-isel %s -o - | FileCheck %s --check-prefix=FASTISEL
; CHECK-LABEL: test1:
; CHECK: brk #0xf000
; FASTISEL: brk #0xf000
define void @test1() noreturn nounwind {
entry:
tail call void @llvm.debugtrap( )
ret void
}
declare void @llvm.debugtrap() nounwind
; CHECK-LABEL: test_trap_func:
; CHECK: bl {{.*}}wibble
; FastISel doesn't handle trap-func-name for debugtrap.
; FASTISEL: brk
define void @test_trap_func() noreturn nounwind {
entry:
tail call void @llvm.debugtrap( ) "trap-func-name"="wibble"
ret void
}