[Libre-soc-dev] scalar instructions and SVP64

Luke Kenneth Casson Leighton lkcl at lkcl.net
Wed Mar 10 00:49:38 GMT 2021


On Wednesday, March 10, 2021, Jacob Lifshay <programmerjake at gmail.com>
wrote:

> https://libre-soc.org/irclog/%23libre-soc.2021-03-10.log.
> html#t2021-03-10T00:11:21
>
> You see why we need VL to be ignored when there aren't any vector
> arguments?


late (1am), the short answer is no.

VL=0 is defined as "all and any sv ops are NOP".

scalar in SV is defined as "element zero of a vector"

not "scalar because it's scalar i.e. not a vector"

it's DEFINED as being "element zero of the Vector".

ALL sv instructions ARE vector.

the misnamed-thing-we-call-sv-scalar is not actually a scalar.

it *is* "the zeroth element of the vector".

therefore by definition it falls under the vector loop

therefore when VL=0 it shall be skipped because all sv instructions *are*
skipped when VL=0

Period.

if you want scalar instructions you do not put them into SV.

you use the v3.0B scalar instructions because those are categorically
scalar.

RVV has the exact same thing.

all RVV instructions categorically become NOPs when VL==0

l.



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


More information about the Libre-soc-dev mailing list