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

Richard Wilbur richard.wilbur at gmail.com
Sun Mar 21 23:21:05 GMT 2021


On Sun, Mar 21, 2021 at 5:07 PM Luke Kenneth Casson Leighton
<lkcl at lkcl.net> wrote:
>
> On Sunday, March 21, 2021, Richard Wilbur <richard.wilbur at gmail.com> wrote:
> > 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

Why isn't it:
        if (src_zeroing and ((1<<srcstep) & srcmask) == 0) or
           (dest_zeroing and ((1<<dststep) & dstmask) == 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

For some reason, whether src_zeroing or dest_zeroing, in all of these
examples you compare against only srcmask.  Why are you ignoring
dstmask?



More information about the Libre-soc-dev mailing list