Clang Project

clang_source_code/test/Preprocessor/riscv-target-features.c
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_flen
11// CHECK-NOT: __riscv_fdiv
12// CHECK-NOT: __riscv_fsqrt
13// CHECK-NOT: __riscv_atomic
14
15// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32im -x c -E -dM %s \
16// RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
17// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64im -x c -E -dM %s \
18// RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
19// CHECK-M-EXT: __riscv_div 1
20// CHECK-M-EXT: __riscv_mul 1
21// CHECK-M-EXT: __riscv_muldiv 1
22
23// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ia -x c -E -dM %s \
24// RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s
25// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ia -x c -E -dM %s \
26// RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s
27// CHECK-A-EXT: __riscv_atomic 1
28
29// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32if -x c -E -dM %s \
30// RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
31// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64if -x c -E -dM %s \
32// RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
33// CHECK-F-EXT: __riscv_fdiv 1
34// CHECK-F-EXT: __riscv_flen 32
35// CHECK-F-EXT: __riscv_fsqrt 1
36
37// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -x c -E -dM %s \
38// RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s
39// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -x c -E -dM %s \
40// RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s
41// CHECK-D-EXT: __riscv_fdiv 1
42// CHECK-D-EXT: __riscv_flen 64
43// CHECK-D-EXT: __riscv_fsqrt 1
44
45// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ic -x c -E -dM %s \
46// RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
47// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ic -x c -E -dM %s \
48// RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
49// CHECK-C-EXT: __riscv_compressed 1
50