Skip to content

Commit b697bf3

Browse files
committed
[Exegesis][RISCV] Skip some of the tests under expensive checks
Under expensive checks, some of the tests will fail to pass the MachineVerifier. It's because right after a snippet is generated, its VL operand (if it's a register) is assigned a physical register. While we'll replace it with virtual register in RISCVExegesisPreprocessing, it's technically violating RISCVInstrInfo's validation rule. Under normal circumstances, this won't trigger a MachineVerifier failure because the codegen pipeline doesn't validate the code until the very end -- which is not the case under EXPENSIVE_CHECKS where MachineVerifierPass is sprinkled here and there. This is really caused by the fact that RISCV exegesis has an odd "codegen" Pass pipeline. And I don't have a good solution yet, so I'm surpressing these tests under EXPENSIVE_CHECKS.
1 parent ae84717 commit b697bf3

File tree

4 files changed

+4
-0
lines changed

4 files changed

+4
-0
lines changed

llvm/test/tools/llvm-exegesis/RISCV/rvv/explicit-sew.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# RUN: llvm-exegesis -mtriple=riscv64 -mcpu=sifive-x280 -benchmark-phase=assemble-measured-code --mode=latency --opcode-name=PseudoVFWREDUSUM_VS_M1_E32 \
22
# RUN: --max-configs-per-opcode=1000 --min-instructions=100 | FileCheck %s
3+
# UNSUPPORTED: expensive_checks
34

45
# Make sure none of the config has SEW other than e32
56
# CHECK: PseudoVFWREDUSUM_VS_M1_E32

llvm/test/tools/llvm-exegesis/RISCV/rvv/skip-rm.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# RUN: --riscv-enumerate-rounding-modes=false --max-configs-per-opcode=1000 --min-instructions=100 | FileCheck %s --check-prefix=VX
33
# RUN: llvm-exegesis -mtriple=riscv64 -mcpu=sifive-x280 -benchmark-phase=assemble-measured-code --mode=latency --opcode-name=PseudoVFADD_VFPR16_M1_E16 \
44
# RUN: --riscv-enumerate-rounding-modes=false --max-configs-per-opcode=1000 --min-instructions=100 | FileCheck %s --check-prefix=FP
5+
# UNSUPPORTED: expensive_checks
56

67
# VX: PseudoVAADDU_VV_M1
78
# VX: VXRM: rnu

llvm/test/tools/llvm-exegesis/RISCV/rvv/valid-sew-zvk.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
# RUN: llvm-exegesis -mtriple=riscv64 -mcpu=sifive-p670 -benchmark-phase=assemble-measured-code --mode=inverse_throughput \
2020
# RUN: --opcode-name=PseudoVSM3C_VI_M1 --max-configs-per-opcode=1000 --min-instructions=100 | \
2121
# RUN: FileCheck %s --allow-empty --check-prefix=EMPTY
22+
# UNSUPPORTED: expensive_checks
2223

2324
# Most vector crypto only supports SEW=32, except Zvknhb which also supports SEW=64
2425
# ZVK-NOT: SEW: e{{(8|16)}}

llvm/test/tools/llvm-exegesis/RISCV/rvv/valid-sew.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
# RUN: llvm-exegesis -mtriple=riscv64 -mcpu=sifive-p470 -benchmark-phase=assemble-measured-code --mode=latency \
1010
# RUN: --opcode-name=PseudoVFREDUSUM_VS_M1_E16 --max-configs-per-opcode=1000 --min-instructions=100 | \
1111
# RUN: FileCheck %s --check-prefix=VFRED --allow-empty
12+
# UNSUPPORTED: expensive_checks
1213

1314
# Make sure only the supported SEWs are generated for fractional LMUL.
1415
# FRAC-LMUL: PseudoVMUL_VV_MF4_MASK

0 commit comments

Comments
 (0)