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