1; RUN: llc -mtriple=riscv32 < %s \
2; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
3; RUN: llc -mtriple=riscv32 -target-abi ilp32 < %s \
4; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
5; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32 < %s \
6; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
7; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32 < %s \
8; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
9; RUN: llc -mtriple=riscv64 < %s \
10; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
11; RUN: llc -mtriple=riscv64 -target-abi lp64 < %s \
12; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
13; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64 < %s \
14; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
15; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64 < %s \
16; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
17; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32f < %s 2>&1 \
18; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
19; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32f < %s 2>&1 \
20; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
21; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32d < %s 2>&1 \
22; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
23; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64f < %s 2>&1 \
24; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
25; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64f < %s 2>&1 \
26; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
27; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64d < %s 2>&1 \
28; RUN:   | FileCheck -check-prefix=CHECK-IMP %s
29
30define void @nothing() nounwind {
31; CHECK-IMP-LABEL: nothing:
32; CHECK-IMP:       # %bb.0:
33; CHECK-IMP-NEXT:    ret
34  ret void
35}
36
37; RUN: not --crash llc -mtriple=riscv32 -target-abi ilp32e < %s 2>&1 \
38; RUN:   | FileCheck -check-prefix=CHECK-UNIMP %s
39
40; CHECK-UNIMP: LLVM ERROR: Don't know how to lower this ABI
41