[Libre-soc-isa] [Bug 973] an easy way to shift registers up and down is needed

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Mon Oct 9 09:41:36 BST 2023


https://bugs.libre-soc.org/show_bug.cgi?id=973

--- Comment #6 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #5)
> (In reply to Jacob Lifshay from comment #4)
> > turns out bigint divmod using knuth's algorithm d most likely needs dynamic
> > svoffset too, 
> 
> use 1<<r3 predicate mask with a vector reg
> or in Vertical-First use a scalar reg sv.xxxx.
> 
> those are the two main ways to do dynamic single-reg
> targetting.

that's fine for scalar, but bigint divmod most likely needs something like the
following:

for j in ...:
    # more stuff in j loop
    # j is dynamic and would be nice to use svoffset
    for i in range(VL):
        prod[i] = maddedu(vn[i], qhat, ...)
    for i in range(VL):
        # different inputs use/don't-use j, so even
        # twin-predication can't do this:
        un[i + j] = subfe(prod[i], un[i + j])
    # more stuff in j loop

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


More information about the Libre-SOC-ISA mailing list