[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