xref: /llvm-project/llvm/test/CodeGen/LoongArch/trap.ll (revision 9d4f7f44b64d87d1068859906f43b7ce03a7388b)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc --mtriple=loongarch32 -mattr=+d --verify-machineinstrs < %s | FileCheck %s
3; RUN: llc --mtriple=loongarch64 -mattr=+d --verify-machineinstrs < %s | FileCheck %s
4
5;; Verify that we lower @llvm.trap() and @llvm.debugtrap() correctly.
6
7declare void @llvm.trap()
8declare void @llvm.debugtrap()
9
10define void @test_trap() nounwind {
11; CHECK-LABEL: test_trap:
12; CHECK:       # %bb.0:
13; CHECK-NEXT:    amswap.w $zero, $ra, $zero
14; CHECK-NEXT:    ret
15  tail call void @llvm.trap()
16  ret void
17}
18
19define void @test_debugtrap() nounwind {
20; CHECK-LABEL: test_debugtrap:
21; CHECK:       # %bb.0:
22; CHECK-NEXT:    break 0
23; CHECK-NEXT:    ret
24  tail call void @llvm.debugtrap()
25  ret void
26}
27