[libre-riscv-dev] [Bug 139] Add LD.X and ST.X? Strided

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Thu Oct 3 10:08:36 BST 2019


http://bugs.libre-riscv.org/show_bug.cgi?id=139

Jacob Lifshay <programmerjake at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |programmerjake at gmail.com

--- Comment #1 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #0)
> We have MV.X / MV.swizzle and the vector overloads on LD and ST particularly
> on the address base gives an indirect LD/ST however we are missing
> stride-multiplied, and swizzled LD/ST.
> 
> Should they be added?

strided LD/ST is definitely needed for reading/writing shader inputs/outputs.

swizzled LD/ST with an immediate swizzle is likely to not be necessary since we
can just macro-op fuse a swizzle op with the memory op, but Vulkan does require
support for dynamically selected swizzled images, so we will need a dynamic
swizzle op of some sort (would be nice to not require it be only in memory ops,
macro op fusion can take care of opcode proliferation). Because a swizzle only
changes the order of subvector elements which are all nearby, we should not
fall back to gather/scatter since gather/scatter is likely to be slower.

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


More information about the libre-riscv-dev mailing list