[Libre-soc-dev] MVL unclear

Lauri Kasanen cand at gmx.com
Fri May 21 13:52:33 BST 2021

On Fri, 21 May 2021 13:39:38 +0100
Luke Kenneth Casson Leighton <lkcl at lkcl.net> wrote:

> here, on this *last loop*, clearly and patently VL *IS NOT* equal to MVL.
> * MVL == 64
> * VL == 16.

It is, because on the last loop you set MVL = 16. Which then
cascades to VL = 16.

> with the last loop entry being possible for 0 <= VL <= MVL, Cray-style
> Vectors cover *ALL* repeat *ALL* the ridiculous cleanup cases you see
> in every single SIMD assembly listing.

This is a benefit of an adjustable VL. The existence of MVL is not
necessary to save the cleanup. On Cray it had a function, it was a hw
limit. Here it appears to be nothing but a loop optimization.

So per my other mail, in SV, is the only function of MVL to save a
couple insns in setting the loop counter?

> and a MASSIVE stupid batch of cleanup instructions at the end.

Again, the lack of cleanup is from setting VL. MVL does not factor into
it, other than making it faster to set VL. Is this not so?

- Lauri

More information about the Libre-soc-dev mailing list