xref: /llvm-project/llvm/test/CodeGen/RISCV/intrinsics/trap.ll (revision 7214f7a79f4bf791e5c6726757dbcec143f0aa91)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \
3; RUN:   | FileCheck -check-prefix=RV32I %s
4; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \
5; RUN:   | FileCheck -check-prefix=RV64I %s
6
7; Verify that we lower @llvm.trap() and @llvm.debugtrap() correctly.
8
9declare void @llvm.trap()
10declare void @llvm.debugtrap()
11
12define void @test_trap() nounwind {
13; RV32I-LABEL: test_trap:
14; RV32I:       # %bb.0:
15; RV32I-NEXT:    unimp
16; RV32I-NEXT:    ret
17;
18; RV64I-LABEL: test_trap:
19; RV64I:       # %bb.0:
20; RV64I-NEXT:    unimp
21; RV64I-NEXT:    ret
22  tail call void @llvm.trap()
23  ret void
24}
25
26define void @test_debugtrap() nounwind {
27; RV32I-LABEL: test_debugtrap:
28; RV32I:       # %bb.0:
29; RV32I-NEXT:    ebreak
30; RV32I-NEXT:    ret
31;
32; RV64I-LABEL: test_debugtrap:
33; RV64I:       # %bb.0:
34; RV64I-NEXT:    ebreak
35; RV64I-NEXT:    ret
36  tail call void @llvm.debugtrap()
37  ret void
38}
39