aboutsummaryrefslogtreecommitdiff
path: root/clang/test/Driver/riscv-abi.c
blob: 16568271564c7978307afdec182385b53021c88e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// RUN: %clang --target=riscv32-unknown-elf %s -### 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32 %s
// RUN: %clang --target=riscv32-unknown-elf %s -### -mabi=ilp32 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32 %s
// RUN: %clang --target=riscv32-unknown-elf %s -### -march=rv32imc 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32 %s
// RUN: %clang --target=riscv32-unknown-elf -x assembler %s -### 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32 %s
// RUN: %clang --target=riscv32-unknown-elf -x assembler %s -### \
// RUN:   -mabi=ilp32 2>&1 | FileCheck -check-prefix=CHECK-ILP32 %s

// CHECK-ILP32: "-target-abi" "ilp32"

// RUN: %clang --target=riscv32-unknown-elf %s -### -march=rv32e -mabi=ilp32e 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32E %s
// RUN: %clang --target=riscv32-unknown-elf %s -### -mabi=ilp32e 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32E %s
// RUN: %clang --target=riscv32-unknown-elf %s -### -march=rv32e 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32E %s

// CHECK-ILP32E: "-target-abi" "ilp32e"

// RUN: %clang --target=riscv32-unknown-elf %s -### -march=rv32if -mabi=ilp32f 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32F %s
// RUN: %clang --target=riscv32-unknown-elf %s -### -mabi=ilp32f 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32F %s
// RUN: %clang --target=riscv32-unknown-elf %s -### -march=rv32if 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32F %s

// CHECK-ILP32F: "-target-abi" "ilp32f"

// RUN: %clang --target=riscv32-unknown-elf %s -### -march=rv32ifd -mabi=ilp32d 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32D %s
// RUN: %clang --target=riscv32-unknown-elf %s -### -march=rv32ifd 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32D %s
// RUN: %clang --target=riscv32-unknown-elf %s -### -march=rv32g 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32D %s
// RUN: %clang --target=riscv32-unknown-linux-gnu %s -### 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32D %s
// RUN: %clang --target=riscv32-unknown-linux-gnu -x assembler %s -### 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-ILP32D %s

// CHECK-ILP32D: "-target-abi" "ilp32d"

// RUN: not %clang --target=riscv32-unknown-elf %s -o %t.o -mabi=lp64 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-RV32-LP64 %s

// CHECK-RV32-LP64: error: unknown target ABI 'lp64'

// RUN: %clang --target=riscv64-unknown-elf %s -### 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64 %s
// RUN: %clang --target=riscv64-unknown-elf %s -### -mabi=lp64 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64 %s
// RUN: %clang --target=riscv64-unknown-elf %s -### -march=rv64imc 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64 %s
// RUN: %clang --target=riscv64-unknown-elf -x assembler %s -### 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64  %s
// RUN: %clang --target=riscv64-unknown-elf -x assembler %s -### \
// RUN:   -mabi=lp64 2>&1 | FileCheck -check-prefix=CHECK-LP64 %s

// CHECK-LP64: "-target-abi" "lp64"

// RUN:  %clang --target=riscv64-unknown-elf %s -### -march=rv64if -mabi=lp64f 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64F %s
// RUN:  %clang --target=riscv64-unknown-elf %s -### -mabi=lp64f 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64F %s
// RUN:  %clang --target=riscv64-unknown-elf %s -### -march=rv64if 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64F %s

// CHECK-LP64F: "-target-abi" "lp64f"

// RUN: %clang --target=riscv64-unknown-elf %s -### -march=rv64ifd -mabi=lp64d 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64D %s
// RUN: %clang --target=riscv64-unknown-elf %s -### -march=rv64ifd 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64D %s
// RUN: %clang --target=riscv64-unknown-elf %s -### -march=rv64g 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64D %s
// RUN: %clang --target=riscv64-unknown-linux-gnu %s -### 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64D %s
// RUN: %clang --target=riscv64-unknown-linux-gnu -x assembler %s -### 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-LP64D  %s

// CHECK-LP64D: "-target-abi" "lp64d"

// RUN: not %clang --target=riscv64-unknown-elf %s -o %t.o -mabi=ilp32 2>&1 \
// RUN:   | FileCheck -check-prefix=CHECK-RV64-ILP32 %s

// CHECK-RV64-ILP32: error: unknown target ABI 'ilp32'