[Libre-soc-dev] SVP64 bclrl

Jacob Lifshay programmerjake at gmail.com
Thu Apr 7 00:53:24 BST 2022


On Wed, Apr 6, 2022, 16:50 Jacob Lifshay <programmerjake at gmail.com> wrote:

> On Wed, Apr 6, 2022, 16:40 lkcl <luke.leighton at gmail.com> wrote:
>
>> clearly that would be Bad, consequently a flag is needed which *only*
>> sets LR if the branch actually takes place.
>>
>> it goes without saying that a side-effect of the branch taking place
>> would be that the SVP64 looping is terminated (early-exit)
>>
>
> From prior discussions, branches would only ever be scalar operations, if
> they're marked vector, it instead means that the condition is computed from
> some vector and then that vector is somehow reduced to a scalar that can be
> used as a condition for the scalar branch...in other words the full vector
> loop would complete (up through VL, not stopping early) and only then would
> the branching part of the operation run. This is quite different from what
> lkcl described above.
>
> I interpret branches setting LR and computing their destination (reading
> LR, CTR, or TAR) as a side effect of the scalar branching part of a branch
> instruction so you never have to worry about LR being written multiple
> times since that part of the operation is never vectorized.
>

note my interpretation is what I expect a reasonable design for SVP64 to
be, i didn't check if the current svp64 spec matches.

Jacob

>


More information about the Libre-soc-dev mailing list