• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32i -x c -E -dM %s \
2 // RUN: -o - | FileCheck %s
3 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64i -x c -E -dM %s \
4 // RUN: -o - | FileCheck %s
5 
6 // CHECK-NOT: __riscv_div
7 // CHECK-NOT: __riscv_mul
8 // CHECK-NOT: __riscv_muldiv
9 // CHECK-NOT: __riscv_compressed
10 // CHECK-NOT: __riscv_bitmanip
11 // CHECK-NOT: __riscv_flen
12 // CHECK-NOT: __riscv_fdiv
13 // CHECK-NOT: __riscv_fsqrt
14 // CHECK-NOT: __riscv_atomic
15 
16 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32im -x c -E -dM %s \
17 // RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
18 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64im -x c -E -dM %s \
19 // RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
20 // CHECK-M-EXT: __riscv_div 1
21 // CHECK-M-EXT: __riscv_mul 1
22 // CHECK-M-EXT: __riscv_muldiv 1
23 
24 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ia -x c -E -dM %s \
25 // RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s
26 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ia -x c -E -dM %s \
27 // RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s
28 // CHECK-A-EXT: __riscv_atomic 1
29 
30 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32if -x c -E -dM %s \
31 // RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
32 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64if -x c -E -dM %s \
33 // RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
34 // CHECK-F-EXT: __riscv_fdiv 1
35 // CHECK-F-EXT: __riscv_flen 32
36 // CHECK-F-EXT: __riscv_fsqrt 1
37 
38 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -x c -E -dM %s \
39 // RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s
40 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -x c -E -dM %s \
41 // RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s
42 // CHECK-D-EXT: __riscv_fdiv 1
43 // CHECK-D-EXT: __riscv_flen 64
44 // CHECK-D-EXT: __riscv_fsqrt 1
45 
46 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ic -x c -E -dM %s \
47 // RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
48 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ic -x c -E -dM %s \
49 // RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
50 // CHECK-C-EXT: __riscv_compressed 1
51 
52 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions -march=rv32ib0p92 -x c -E -dM %s \
53 // RUN: -o - | FileCheck --check-prefix=CHECK-B-EXT %s
54 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions -march=rv64ib0p92 -x c -E -dM %s \
55 // RUN: -o - | FileCheck --check-prefix=CHECK-B-EXT %s
56 // CHECK-B-EXT: __riscv_bitmanip 1
57 
58 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -mabi=ilp32 -x c -E -dM %s \
59 // RUN: -o - | FileCheck --check-prefix=CHECK-SOFT %s
60 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -mabi=lp64 -x c -E -dM %s \
61 // RUN: -o - | FileCheck --check-prefix=CHECK-SOFT %s
62 // CHECK-SOFT: __riscv_float_abi_soft 1
63 // CHECK-SOFT-NOT: __riscv_float_abi_single
64 // CHECK-SOFT-NOT: __riscv_float_abi_double
65 
66 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -mabi=ilp32f -x c -E -dM %s \
67 // RUN: -o - | FileCheck --check-prefix=CHECK-SINGLE %s
68 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -mabi=lp64f -x c -E -dM %s \
69 // RUN: -o - | FileCheck --check-prefix=CHECK-SINGLE %s
70 // CHECK-SINGLE: __riscv_float_abi_single 1
71 // CHECK-SINGLE-NOT: __riscv_float_abi_soft
72 // CHECK-SINGLE-NOT: __riscv_float_abi_double
73 
74 // RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -x c -E -dM %s \
75 // RUN: -o - | FileCheck --check-prefix=CHECK-DOUBLE %s
76 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -x c -E -dM %s \
77 // RUN: -o - | FileCheck --check-prefix=CHECK-DOUBLE %s
78 // CHECK-DOUBLE: __riscv_float_abi_double 1
79 // CHECK-DOUBLE-NOT: __riscv_float_abi_soft
80 // CHECK-DOUBLE-NOT: __riscv_float_abi_single
81 
82 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \
83 // RUN:   -march=rv32iv0p9 -x c -E -dM %s \
84 // RUN:   -o - | FileCheck --check-prefix=CHECK-V-EXT %s
85 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \
86 // RUN:   -march=rv64iv0p9 -x c -E -dM %s \
87 // RUN:   -o - | FileCheck --check-prefix=CHECK-V-EXT %s
88 // CHECK-V-EXT: __riscv_vector 1
89 //
90 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions -march=rv32izfh0p1 -x c -E -dM %s \
91 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s
92 // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions -march=rv64izfh0p1 -x c -E -dM %s \
93 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s
94 // CHECK-ZFH-EXT: __riscv_zfh 1
95