[Libre-soc-bugs] [Bug 716] PartitionedSignal Slice and Part needed for __getitem__

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sat Oct 16 02:26:31 BST 2021


--- Comment #9 from Jacob Lifshay <programmerjake at gmail.com> ---
I added WIP code that will handle any combination of Slice and Cat, it can
reduce it all down to a single layer of muxes. it also supports assignment to
any combination of Slice and Cat of SimdSignals. I put it all in a swizzle.py
file, that handles arbitrary bit-swizzles:

The basic idea is there's SwizzledSimdValue, a subclass of SimdSignal, that
tracks where each bit goes from the original Signals for every possible value
of mask/elwid (we really need to get elwid integrated into SimdSignal...), then
we have each SwizzledSimdValue instance independently construct it's .sig
member on-demand from the *original* Signals' bits, *instead of* from any other

When a SwizzledSimdValue is assigned to, it uses a completely different
evaluation method: it constructs the full list of Signals that it's built out
of, and returns the assignments that would reassign those full signals to the
correct values.

You are receiving this mail because:
You are on the CC list for the bug.

More information about the libre-soc-bugs mailing list