[Libre-soc-dev] SVP64 bclrl

Jacob Lifshay programmerjake at gmail.com
Thu Apr 7 00:50:56 BST 2022

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.


More information about the Libre-soc-dev mailing list