3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-16 05:48:44 +00:00
yosys/tests/opt
Krystine Sherwin 406b400458
opt_expr: Fix #4590
If all the (non-select) inputs of a `$_MUX{4,8,16}_` are undefined, replace it, just like we do for `$mux` and `$_MUX_`.
Add `tests/opt/opt_expr_mux_undef.ys` to verify this.

This doesn't do any const folding on the wide muxes, or shrinking to less wide muxes.  It only handles the case where all inputs are 'x and the mux can be completely removed.
2025-04-04 12:25:31 +13:00
..
.gitignore tests: add gitignores for auto-generated makefiles 2020-09-26 16:28:24 +02:00
bug1525.ys opt_share: Fix handling of fine cells. 2019-11-27 08:01:07 +01:00
bug1758.ys tests: add opt_expr tests 2020-04-23 15:58:36 -07:00
bug1854.ys Add new helper class for merging FFs into cells, use for memory_dff. 2021-05-23 14:46:59 +02:00
bug2010.ys Add testcase for #2010 2020-05-01 14:07:33 -07:00
bug2221.ys opt_expr: Fix crash on $mul optimization with more zeros removed than Y has. 2020-07-05 06:31:58 +02:00
bug2311.ys opt_expr: Fix handling of $_XNOR_ cells with A = B. 2020-07-29 12:41:43 +02:00
bug2318.ys peepopt.muldiv: Add a signedness check. 2020-08-04 16:30:24 +02:00
bug2623.ys rtlil: Disallow 0-width chunks in SigSpec. 2021-03-15 17:16:24 +01:00
bug2765.ys proc_memwr: Use the v2 memwr cell. 2021-08-11 13:34:10 +02:00
bug2766.ys opt_mem_feedback: Rewrite feedback path finding logic. 2021-05-24 23:20:30 +02:00
bug2824.ys Add regression test for #2824. 2021-06-11 12:06:35 +01:00
bug2920.ys Remove references to ilang 2024-11-05 12:36:31 +13:00
bug3047.ys extract_reduce: Refactor and fix input signal construction. 2021-10-21 04:10:01 +02:00
bug3117.ys memory_share: Fix SAT-based sharing for wide ports. 2021-12-20 18:40:14 +01:00
bug3848.ys opt_share: Fix input confusion with ANDNOT, ORNOT gates 2023-07-20 20:58:52 +01:00
bug3867.ys opt_expr: Fix 'signed X>=0' replacement for wide output ports 2023-08-01 13:50:12 +01:00
bug4413.ys peepopt: avoid shift-amount underflow 2024-06-13 23:30:07 +02:00
bug4610.ys tests: replace read_ilang with read_rtlil 2024-11-20 14:54:23 +01:00
memory_bmux2rom.ys Remove references to ilang 2024-11-05 12:36:31 +13:00
memory_dff_trans.ys memory_share: Add -nosat and -nowiden options. 2021-08-14 00:09:04 +02:00
memory_map_offset.ys memory_map: Improve start_offset handling. 2021-05-31 17:45:21 +02:00
opt_clean_init.ys opt_clean: Remove init attribute bits together with removed DFFs. 2021-03-15 17:16:53 +01:00
opt_clean_mem.ys proc_memwr: Use the v2 memwr cell. 2021-08-11 13:34:10 +02:00
opt_dff_arst.ys Add opt_dff pass. 2020-07-30 18:27:04 +02:00
opt_dff_clk.ys Add opt_dff pass. 2020-07-30 18:27:04 +02:00
opt_dff_const.ys Add opt_dff pass. 2020-07-30 18:27:04 +02:00
opt_dff_dffmux.ys peepopt: Remove now-redundant dffmux pattern. 2020-08-07 13:21:34 +02:00
opt_dff_en.ys Fix tests for check in equiv_opt 2022-10-07 16:04:51 +02:00
opt_dff_mux.ys Fix tests for check in equiv_opt 2022-10-07 16:04:51 +02:00
opt_dff_qd.ys tests: Remove part of test involving combinational loops 2024-03-11 10:45:36 +01:00
opt_dff_sr.ys Re-enable opt_dff_sr equiv_opt checks 2022-10-07 16:04:51 +02:00
opt_dff_srst.ys Add opt_dff pass. 2020-07-30 18:27:04 +02:00
opt_expr.ys opt_expr: Optimize multiplications with low 0 bits in operands. 2020-04-13 16:52:22 +02:00
opt_expr_alu.ys test: update opt_expr_alu test 2020-05-08 11:12:58 -07:00
opt_expr_and.ys tests: add opt_expr tests 2020-04-23 15:58:36 -07:00
opt_expr_cmp.v opt_expr: improve simplification of comparisons with large constants. 2019-01-02 15:45:28 +00:00
opt_expr_cmp.ys opt_expr: simplify any unsigned comparisons with all-0 and all-1. 2019-01-02 02:45:49 +00:00
opt_expr_combined_assign.ys Add sub-assign and and-assign tests 2020-06-25 14:32:05 +02:00
opt_expr_constconn.v opt_expr: Propagate constants to port connections. 2021-07-27 20:44:26 +02:00
opt_expr_constconn.ys opt_expr: Propagate constants to port connections. 2021-07-27 20:44:26 +02:00
opt_expr_consumex.ys tests: opt_expr tests that depend on consumex 2020-05-08 11:07:11 -07:00
opt_expr_more.ys opt_expr: expand test coverage 2025-03-31 19:31:53 +02:00
opt_expr_mux_undef.ys opt_expr: Fix #4590 2025-04-04 12:25:31 +13:00
opt_expr_or.ys tests: add opt_expr tests 2020-04-23 15:58:36 -07:00
opt_expr_shr_int_max.ys Add test for shifting by INT_MAX 2025-02-14 14:01:27 +13:00
opt_expr_xnor.ys simplemap: Map $xnor to $_XNOR_ cells 2022-11-29 19:06:45 +01:00
opt_expr_xor.ys simplemap: Map $xnor to $_XNOR_ cells 2022-11-29 19:06:45 +01:00
opt_lut.v opt_lut: new pass, to combine LUTs for tighter packing. 2018-12-05 16:30:37 +00:00
opt_lut.ys Revert "Merge pull request #1280 from YosysHQ/revert-1266-eddie/ice40_full_adder" 2019-08-12 12:06:45 -07:00
opt_lut_elim.il opt_lut: eliminate LUTs evaluating to constants or inputs. 2018-12-31 23:55:40 +00:00
opt_lut_elim.ys Remove references to ilang 2024-11-05 12:36:31 +13:00
opt_lut_ins.ys Remove references to ilang 2024-11-05 12:36:31 +13:00
opt_lut_port.il opt_lut: leave intact LUTs with cascade feeding module outputs. 2018-12-07 17:13:52 +00:00
opt_lut_port.ys Remove references to ilang 2024-11-05 12:36:31 +13:00
opt_mem_feedback.ys Add v2 memory cells. 2021-08-11 13:34:10 +02:00
opt_mem_priority.ys memory_share: Add -nosat and -nowiden options. 2021-08-14 00:09:04 +02:00
opt_merge_basic.ys opt_merge: test more kinds of cells 2025-03-10 13:14:06 +01:00
opt_merge_init.ys opt_merge: Add -keepdc option required for formal verification 2022-04-01 21:03:20 +02:00
opt_merge_keep.ys opt_merge: speedup 2020-03-16 12:43:54 -07:00
opt_pow.ys opt_expr: add test 2025-04-01 21:54:46 +03:00
opt_reduce_andor.ys opt_reduce: add test for constant $reduce_and/or not being zero width 2024-09-25 16:28:41 +01:00
opt_reduce_bmux.ys Remove references to ilang 2024-11-05 12:36:31 +13:00
opt_reduce_demux.ys Remove references to ilang 2024-11-05 12:36:31 +13:00
opt_rmdff.v Fix tests/opt/opt_rmdff 2020-06-09 22:48:26 +02:00
opt_rmdff.ys Add opt_dff pass. 2020-07-30 18:27:04 +02:00
opt_rmdff_sat.v Revert "Merge pull request #1280 from YosysHQ/revert-1266-eddie/ice40_full_adder" 2019-08-12 12:06:45 -07:00
opt_rmdff_sat.ys Add opt_dff pass. 2020-07-30 18:27:04 +02:00
opt_share_add_sub.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_add_sub.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
opt_share_bug2334.ys opt_share: Refactor, fix some bugs. 2020-08-17 17:26:36 +02:00
opt_share_bug2335.ys opt_share: Refactor, fix some bugs. 2020-08-17 17:26:36 +02:00
opt_share_bug2336.ys opt_share: Refactor, fix some bugs. 2020-08-17 17:26:36 +02:00
opt_share_bug2538.ys opt_share: Fix X and CO signal width for shifted $alu in opt_share. 2021-01-14 14:54:08 +01:00
opt_share_cat.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_cat.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
opt_share_cat_multiuser.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_cat_multiuser.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
opt_share_diff_port_widths.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_diff_port_widths.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
opt_share_extend.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_extend.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
opt_share_large_pmux_cat.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_large_pmux_cat.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
opt_share_large_pmux_cat_multipart.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_large_pmux_cat_multipart.ys Fix wrong results when opt_share called before opt_clean 2019-08-07 09:30:58 +02:00
opt_share_large_pmux_multipart.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_large_pmux_multipart.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
opt_share_large_pmux_part.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_large_pmux_part.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
opt_share_mux_tree.v Tabs to spaces in opt_share examples 2019-08-03 12:35:46 +02:00
opt_share_mux_tree.ys Reimplement opt_share to work on $alu and $pmux 2019-07-28 16:03:54 +02:00
run-test.sh test: restore verific handling, nicer naming 2024-12-13 10:24:47 +01:00