[Libre-soc-isa] [Bug 1183] add /mrr mode (reverse mode) to Data-Dependent Fail-First CR_ops

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Fri Nov 17 15:04:12 GMT 2023


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

--- Comment #16 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #3)

> Another thing I realized while working on divmod, it would be really handy
> if stuff with a scalar destination would run through all elements instead of
> stopping at the first, I didn't check if we do that. This is useful for not
> overwriting all the CRs that you could be storing some other variable in.
> 
> e.g.:
> sv.cmpi/ff=lt 0, 1, *10, 5
> is:
> i = 0
> while i < VL:
>     CR0 = cmpd(gpr[10 + i], 5)
>     if CR0.lt:
>         break
>     i += 1
> VL = i
> 
> note how only CR0 is ever written and yet the whole vector loop is run

yes, i just discovered the exact same thing is needed for Fortran MAXLOC
(https://bugs.libre-soc.org/show_bug.cgi?id=676#c26)

there it is necessary to use RT=RA=scalar on sv.maxs./ff=lt to get it
to "track and return" the largest number *in a scalar* of the vector
of source numbers.

this implies *changing normal mode as well*

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


More information about the Libre-SOC-ISA mailing list