|
1 | 1 | // RUN: %clang --target=riscv32-unknown-elf -S -emit-llvm %s -o - | FileCheck %s -check-prefix=RV32 |
2 | 2 | // RUN: %clang --target=riscv64-unknown-elf -S -emit-llvm %s -o - | FileCheck %s -check-prefix=RV64 |
3 | 3 |
|
4 | | -// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -emit-llvm %s -o - | FileCheck %s -check-prefix=RV32-XCHERI |
5 | | -// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -emit-llvm %s -o - | FileCheck %s -check-prefix=RV64-XCHERI |
6 | | -// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -mno-xcheri-rvc -emit-llvm %s -o - | FileCheck %s -check-prefix=RV32-XCHERI-NORVC |
7 | | -// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -mno-xcheri-rvc -emit-llvm %s -o - | FileCheck %s -check-prefix=RV64-XCHERI-NORVC |
8 | | -// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -mxcheri-norvc -emit-llvm %s -o - | FileCheck %s -check-prefix=RV32-XCHERI-NORVC |
9 | | -// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -mxcheri-norvc -emit-llvm %s -o - | FileCheck %s -check-prefix=RV64-XCHERI-NORVC |
| 4 | +// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV32-XCHERI,XCHERI |
| 5 | +// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV64-XCHERI,XCHERI |
| 6 | +// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -mno-xcheri-rvc -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV32-XCHERI-NORVC,XCHERI |
| 7 | +// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -mno-xcheri-rvc -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV64-XCHERI-NORVC,XCHERI |
| 8 | +// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -mxcheri-norvc -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV32-XCHERI-NORVC,XCHERI |
| 9 | +// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -mxcheri-norvc -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV64-XCHERI-NORVC,XCHERI |
10 | 10 | // The -mxcheri-rvc flag to explicitly disable xcheri-norvc: |
11 | | -// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -mxcheri-rvc -emit-llvm %s -o - | FileCheck %s -check-prefix=RV32-XCHERI-EXPLICIT-RVC |
12 | | -// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -mxcheri-rvc -emit-llvm %s -o - | FileCheck %s -check-prefix=RV64-XCHERI-EXPLICIT-RVC |
13 | | -// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -mno-xcheri-norvc -emit-llvm %s -o - | FileCheck %s -check-prefix=RV32-XCHERI-EXPLICIT-RVC |
14 | | -// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -mno-xcheri-norvc -emit-llvm %s -o - | FileCheck %s -check-prefix=RV64-XCHERI-EXPLICIT-RVC |
15 | | - |
16 | | -// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -mxcheri-v9-semantics -S -emit-llvm %s -o - | FileCheck %s -check-prefix=RV64-XCHERI-V9 |
17 | | -// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -mxcheri-v8-compat -S -emit-llvm %s -o - | FileCheck %s -check-prefix=RV64-XCHERI-V8 |
| 11 | +// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -mxcheri-rvc -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV32-XCHERI,XCHERI,XCHERI-RVC |
| 12 | +// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -mxcheri-rvc -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV64-XCHERI,XCHERI,XCHERI-RVC |
| 13 | +// RUN: %clang --target=riscv32-unknown-elf -march=rv32ixcheri -S -mno-xcheri-norvc -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV32-XCHERI,XCHERI,XCHERI-RVC |
| 14 | +// RUN: %clang --target=riscv64-unknown-elf -march=rv64ixcheri -S -mno-xcheri-norvc -emit-llvm %s -o - | FileCheck %s --check-prefixes=RV64-XCHERI,XCHERI,XCHERI-RVC |
18 | 15 |
|
19 | 16 | // RV32: "target-features"="+32bit,+a,+c,+m,+relax, |
20 | 17 | // RV64: "target-features"="+64bit,+a,+c,+m,+relax, |
21 | 18 |
|
22 | | -// RV32-XCHERI: "target-features"="+32bit,+relax,+xcheri |
23 | | -// RV64-XCHERI: "target-features"="+64bit,+relax,+xcheri |
| 19 | +// RV32-XCHERI: "target-features"="+32bit,+relax,+xcheri, |
| 20 | +// RV64-XCHERI: "target-features"="+64bit,+relax,+xcheri, |
24 | 21 |
|
25 | 22 | // RV32-XCHERI-RVC: "target-features"="+32bit,+relax,+xcheri |
26 | | -// RV32-XCHERI-RVC: -save-restore |
27 | 23 | // RV64-XCHERI-RVC: "target-features"="+64bit,+relax,+xcheri |
28 | | -// RV64-XCHERI-RVC: -save-restore |
29 | 24 | // RV32-XCHERI-NORVC: "target-features"="+32bit,+relax,+xcheri,+xcheri-norvc |
30 | 25 | // RV64-XCHERI-NORVC: "target-features"="+64bit,+relax,+xcheri,+xcheri-norvc |
31 | 26 | // RV32-XCHERI-EXPLICIT-RVC: "target-features"="+32bit,+relax,+xcheri |
32 | | -// RV32-XCHERI-EXPLICIT-RVC-SAME -save-restore |
33 | | -// RV32-XCHERI-EXPLICIT-RVC-SAME -xcheri-norvc |
| 27 | +// XCHERI-RVC-SAME: ,-xcheri-norvc, |
34 | 28 | // RV64-XCHERI-EXPLICIT-RVC: "target-features"="+64bit,+relax,+xcheri |
35 | | -// RV64-XCHERI-EXPLICIT-RVC-SAME -save-restore |
36 | | -// RV64-XCHERI-EXPLICIT-RVC-SAME -xcheri-norvc |
37 | 29 |
|
38 | | -// RV64-XCHERI-V8: "target-features"="+64bit,+relax,+xcheri |
39 | | -// RV64-XCHERI-V8-SAME: -xcheri-v9-semantics |
40 | | -// RV64-XCHERI-V9: "target-features"="+64bit,+relax,+xcheri |
41 | | -// RV64-XCHERI-V9-SAME: +xcheri-v9-semantics |
| 30 | +// XCHERI-NOT: xcheri, |
42 | 31 |
|
43 | 32 | // Dummy function |
44 | 33 | int foo(void){ |
|
0 commit comments