[Libre-soc-bugs] [Bug 1028] implement integer-versions of fft/dct "butterfly" instructions in ISACaller Simulator

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Thu Jul 20 23:36:47 BST 2023


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

--- Comment #9 from Jacob Lifshay <programmerjake at gmail.com> ---
while writing unit tests for maddrs, I noticed that it's a 4-in 2-out
instruction (most likely too many) -- it reads RA, RB, RT, and RS and writes RT
and RS.

If you must have that many inputs/outputs, it seems to me that it would be
better to just directly compute the expression you care about, since that's
also 4-in 2-out, rather than needing 2 instructions:
fdct_round_shift(a * c1  +/- b * c2)

basically replace maddrs with:

Multiply Multiply Add Sub Right Shift A-Form

mmaddsubrs RT, RA, RB, SH

prod1 <- MULS((RT), (RA))
prod2 <- MULS((RS), (RB))
RT <- round_shift(prod1 + prod2, SH)
RS <- round_shift(prod1 - prod2, SH)

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


More information about the libre-soc-bugs mailing list