[Libre-soc-isa] [Bug 1071] add parallel prefix sum remap mode

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Mon May 1 16:34:02 BST 2023


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

--- Comment #23 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #22)
> (In reply to Jacob Lifshay from comment #16)
> 
> > if RA = 0 then x_len <- VL
> > else x_len <- (RA)
> > VL <- remapped_len(x_len, ...)
> > # since we don't want to set MAXVL from a GPR:
> > MAXVL <- remapped_len(x_len=MAXVL, ...)
> 
> this will fail on the next iteration unless preceded by a
> setvl MAXVL=n instruction.

yup, that's the idea -- run setvl first -- hence why I was initially thinking
it would only read from VL and not a GPR. maybe just reserve one uncommon SVxd
8mmediate (59?) to mean to instead read SVxd from VL? that way you don't need
2x the encoding space.

though i also just now thought of a way around needing setvl -- have 2 MAXVL
fields or SPRs, tentatively named OP_MAXVL (used as a limit on
element/subvector operations) and REG_MAXVL (used as a backup for OP_MAXVL and
for whenever doing register offsetting like RS=RT+MAXVL, since there we care
about register counts not how many operations our random svshape needs) both
set by setvl when setting MAXVL, but svshape and friends only set OP_MAXVL,
computing it from REG_MAXVL or the immediates. it may be also useful to
likewise split VL into two, but not as necessary.

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


More information about the Libre-SOC-ISA mailing list