[Libre-soc-dev] [RFC] svp64 "source zeroing" makes no sense

Luke Kenneth Casson Leighton lkcl at lkcl.net
Sun Mar 21 23:06:53 GMT 2021


On Sunday, March 21, 2021, Richard Wilbur <richard.wilbur at gmail.com> wrote:

> On Sun, Mar 21, 2021 at 4:13 PM Luke Kenneth Casson Leighton
> <lkcl at lkcl.net> wrote:
> >
> > so on each iteration, here are the four options, assume predicates on
> both
> > src and dest:
> >
> > * no zeroing.  this is a back-to-back VREDUCE-VEXPAND
> >
> > *  source-predicate zeroing this is a VREDUCE with zeros inserted into
> the
> > output
>
> I guess it escapes me why this is called source predicate zeroing if
> it only affects the output.


i know.  odd, isn't it.  the clue is in

       if (src_zeroing and ((1<<srcstep) & srcmask) == 0) or
          (dest_zeroing and ((1<<dststep) & srcmask) == 0)):
            result = 0

it's not

       if (dest_zeroing and ((1<<srcstep) & srcmask) == 0) or
          (dest_zeroing and ((1<<dststep) & srcmask) == 0)):
            result = 0

it's not

       if (src_zeroing and ((1<<srcstep) & srcmask) == 0) or
          (src_zeroing and ((1<<dststep) & srcmask) == 0)):
            result = 0

it's

       if (src_zeroing and ((1<<srcstep) & srcmask) == 0) or
          (dest_zeroing and ((1<<dststep) & srcmask) == 0)):
            result = 0




-- 
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68


More information about the Libre-soc-dev mailing list