[Libre-soc-dev] forgot immediate field?

Jacob Lifshay programmerjake at gmail.com
Fri May 28 15:56:57 BST 2021


On Fri, May 28, 2021, 07:47 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:

> ---
> crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
>
>
> On Fri, May 28, 2021 at 3:12 PM Jacob Lifshay <programmerjake at gmail.com>
> wrote:
>
> >
> > Sounds like a good use-case for strided load (load base+0*stride,
> > base+1*stride, base+2*stride, ...).
>
>
> glad you remembered the name.
>
> Strided load/store is very important
> > for GPU Shader performance, it is very common there. It can be
> implemented
> > less efficiently with gather-load.
> >
>
> yeah we don't want to be doing that.
>
> the SVP64 Mode bits are interpreted differently for LD/ST so as
> to include a "strided" mode.
> https://libre-soc.org/openpower/sv/ldst/


Hmm, reading through that again, it looks like it unintentionally ignores
the immediate for unit-stride mode, I'd expect the address calculation to
be base + immed + N * sizeof(element), in the pseudo-code it is instead
just base + N * sizeof(element), wasting the completely valid immediate
field.

Jacob


More information about the Libre-soc-dev mailing list