techmap/shift_shiftx: Remove the "shiftx2mux" special path.
authorMarcelina Kościelnicka <mwk@0x04.net>
Wed, 19 Aug 2020 11:59:59 +0000 (13:59 +0200)
committerMarcelina Kościelnicka <mwk@0x04.net>
Thu, 20 Aug 2020 10:44:09 +0000 (12:44 +0200)
commit50d532f01c3703930240e30c72b726fa66095cf5
tree94d567468e3015620eb221ac5795c67f4e337bd0
parent93d663be62510b0d062767b288e943f7a9eed9f6
techmap/shift_shiftx: Remove the "shiftx2mux" special path.

Our techmap rules for $shift and $shiftx cells contained a special path
that aimed to decompose the shift LSB-first instead of MSB-first in
select cases that come up in pmux lowering.  This path was needlessly
overcomplicated and contained bugs.

Instead of doing that, just switch over the main path to iterate
LSB-first (except for the specially-handled MSB for signed shifts
and overflow handling).  This also makes the code consistent with
shl/shr/sshl/sshr cells, which are already decomposed LSB-first.

Fixes #2346.
techlibs/common/techmap.v
tests/arch/intel_alm/mux.ys
tests/techmap/shiftx2mux.ys