[llvm] [llvm-exegesis][RISCV] Deflake rvv/filter.test: split e8/e16 paths and handle empty-snippet case (ALLOW_RETRIES:1) (PR #164924)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 24 10:31:02 PDT 2025


mshockwave wrote:

> 0.000216 ≈ 0.0216

I guess you meant "0.0216%"?

> Single-run failure rate: ~0.4% for each run

how did you get / measure this number?

Fundamentally, I'm a bit skeptical on the probability advantage of splitting the test into two because RISCV exegesis calls Serial/ParallelSnippetGenerator _first_ to assign random registers -- which is the part that may fails. Then it instantiates a new instruction for each VTYPE from a randomized instruction before filtering them with `--riscv-filter-config`. The VTYPE permutation phase does not change the register assignment from the previous phase, which means that `--riscv-filter-config='vtype = {..., SEW: e(8|16), ...}' has the same chances to fail as `--riscv-filter-config='vtype = {..., SEW: e8, ...}'

Therefore, splitting the test into two commands, requiring at least one of them to success in addition to `ALLOW_RETRIES: 1` is the same as just using `ALLOW_RETRIES: 3` -- both of them takes 4 failures of the same probability in total to fail the entire test.

This is just a tip of an iceberg, as Aiden pointed out there are many technical issues in this PR. For the very least, I think you should at least disclose that you're using AI to generate this PR.

https://github.com/llvm/llvm-project/pull/164924


More information about the llvm-commits mailing list