[Libre-soc-bugs] [Bug 230] Video opcode development and discussion
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Mon Dec 14 18:33:25 GMT 2020
https://bugs.libre-soc.org/show_bug.cgi?id=230
--- Comment #44 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #43)
> We will need variable shift-left/bitwise-shift-right/arithmetic-shift-right
> and maybe rotates too for GPU applications, so since we will already have
> them, you might as well use them.
indeed: however there are two different places.
1) srcelwidth == destelwidth.
the normal place is in fixed-width Vector inputs. 64 bit RA/RB in or 2x32-bit
SIMD RA/RB in, 64 bit out or 2x32-bit SIMD out.
applying standard variable shift-right/etc. at that point - when srcwidth ==
destwidth - i have no problem with putting down large blocks, QTY 4 or 8 of
these, when the input data RA % 4 == RB % 4 == RT %4.
2) srcelwidth != destelwidth
this is where the Monster FSM with the 256+ bit Shift Register comes into its
own. here it's *not* ok to drop a massive set of gates down without some
Serious Thought going into it.
the idea here is to basically have some sort of subset of shift/mask that can
cope with and adapt to varying pixel in/out and audio in/out patterns, but
*without* having to design a full suite of operations that basically duplicates
the entire OpenPOWER rotate ISA.
but, that aside: yes if (2) doesn't work out then the fallback option would be
to at least get the data widened/expanded, use parallel vector shift/mask (same
src/dest width)
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list