3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-07-15 03:35:40 +00:00
yosys/tests
Akash Levy 945e4a403b tests/opt: add generalization coverage for the QoR pattern passes
Prove the three pattern detectors work on unseen inputs, not just the RTL
they were derived from. Because detection is functional (ConstEval
fingerprinting over the reachable input space), correctness is established
per case with equiv_opt -assert (full) or a SAT miter clamped to the
reachable range (non-power-of-two), and detection is confirmed with a
w:*tag* probe.

opt_priokey:
  D1-D3  spelling variants (explicit shift-or set, compound derived guard,
         accumulator also exported) -- all fire and prove equivalent.
  E1-E2  parameter sweep P=2..8, S=4..32.
  E3     non-power-of-two S=12 reachable-range equivalence via SAT miter.
  E4     same shape under -strict declines to rewrite (formal-flow safety).
  F1-F2  near-miss negatives (clear accumulator, multi-hot set) -> no rewrite.

opt_prienc (round-robin):
  RR4-RR5 DEPTH sweep 8/32, full sequential equivalence.
  RR6     non-power-of-two DEPTH=7 reachable-range equivalence (SAT miter).
  RR7     an entirely different spelling (upward wrap-scan, first-hit) of the
          same arbiter -- fires and proves equivalent.
  RR8     fixed-priority (no rotating pointer) negative.

opt_first_fit_alloc (coalesce):
  H1      inline same-category compare (no precomputed matrix) spelling.
  H2      different slot/field shape (N=8, NB=8, W=3).

All new cases pass locally; they avoid brittle exact cell-count asserts so
they are robust to upstream optimization drift.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 22:05:50 -07:00
..
aiger Do not use Makefile.conf 2026-05-19 14:29:06 +02:00
alumacc Use generic testing on few more places 2026-04-16 11:00:44 +02:00
arch Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
arith_tree End of file fix 2026-06-23 07:23:41 +02:00
asicworld Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
bind Use generic testing on few more places 2026-04-16 11:00:44 +02:00
blif Merge remote-tracking branch 'upstream/main' into silimate 2026-06-09 16:22:51 +03:00
bram End of file fix 2026-06-23 07:23:41 +02:00
bugpoint Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
check_mem tests/check_mem: Drop unused init check 2026-05-30 11:06:11 +12:00
cxxrtl Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
errors End of file fix 2026-06-23 07:23:41 +02:00
fmt Cleanup 2026-04-16 11:00:44 +02:00
fsm Did share, opt_share and fsm 2026-04-16 11:00:44 +02:00
functional Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
hana Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
liberty Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
lut Add a general tests/.gitignore and remove redundant entries in subdirectory .gitignore files. 2025-07-22 10:38:38 +00:00
memfile Update CI scripts for CMake 2026-06-03 08:58:11 +00:00
memlib Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
memories Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
opt tests/opt: add generalization coverage for the QoR pattern passes 2026-07-06 22:05:50 -07:00
opt_share Did share, opt_share and fsm 2026-04-16 11:00:44 +02:00
peepopt Merge remote-tracking branch 'upstream/main' into silimate 2026-06-09 16:22:51 +03:00
proc Fixup issue test. 2026-06-15 16:23:44 +02:00
pyosys End of file fix 2026-06-23 07:23:41 +02:00
realmath Cleanup 2026-04-16 11:00:44 +02:00
rpc Make out of tree build testing possible 2026-05-19 14:26:07 +02:00
rtlil End of file fix 2026-06-23 07:23:41 +02:00
sat Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
sdc Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
select Converted some more 2026-04-16 11:00:44 +02:00
share Did share, opt_share and fsm 2026-04-16 11:00:44 +02:00
silimate Pass carvenetlist 2026-07-06 07:44:01 -07:00
sim Remove trailing whitespaces 2026-06-23 07:24:59 +02:00
simple End of file fix 2026-06-23 07:23:41 +02:00
simple_abc9 Convert autotest script wrapper 2026-04-16 11:00:44 +02:00
smv End of file fix 2026-06-23 07:23:41 +02:00
sva End of file fix 2026-06-23 07:23:41 +02:00
svinterfaces Cleanup 2026-04-16 11:00:44 +02:00
svtypes Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
techmap Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
tools End of file fix 2026-06-23 07:23:41 +02:00
unit Remove old Makefile and fix documentation 2026-06-15 15:25:58 +02:00
various test/ci fixes 2026-07-02 18:56:25 +03:00
verific Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
verilog Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
vloghtb End of file fix 2026-06-23 07:23:41 +02:00
write_verilog tests: Add mixed_upto write_verilog test 2026-06-19 11:20:01 +12:00
xprop Update CI scripts for CMake 2026-06-03 08:58:11 +00:00
.gitignore Save results, and create summary and report 2026-04-16 11:00:44 +02:00
common.mk Add VERBOSE (and V) option to Makefiles 2026-06-15 14:48:11 +02:00
gen_tests_makefile.py Add VERBOSE (and V) option to Makefiles 2026-06-15 14:48:11 +02:00
Makefile Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
pass-fuzzing.md Remove trailing whitespaces 2026-06-23 07:24:59 +02:00