"vsetvl[i] x0, x0" with vill in vtype


Krste Asanovic
 

The second fix is just a clarification of a missing case in the spec:

"vsetvl[i] with rd=rs1=x0 is reserved if vill was 1 beforehand."

The "vsetvl[i] x0, x0" form is defined in terms of whether VLMAX and
hence vl might change, but if the vtype setting has vill set, then
there is no valid existing VLMAX.

Krste


mark
 

any possible compatibility issues (i can't see any but not sure) in this one with existing implementations like you discussed in the first one?

Mark

--------
sent from a mobile device. please forgive any typos.

On Nov 2, 2022, at 12:01 AM, Krste Asanovic <krste@...> wrote:


The second fix is just a clarification of a missing case in the spec:

"vsetvl[i] with rd=rs1=x0 is reserved if vill was 1 beforehand."

The "vsetvl[i] x0, x0" form is defined in terms of whether VLMAX and
hence vl might change, but if the vtype setting has vill set, then
there is no valid existing VLMAX.

Krste





Krste Asanovic
 

The definition of this case was missing, so there is nothing to be
incompatible with.

This case only happens with buggy software.

In practice, I expect most implementations will have decided to keep
vill set, but making the operation "reserved" allows any current
behavior to be accomodated.

Krste


On Wed, 2 Nov 2022 00:07:02 -0700, Mark Himelstein <markhimelstein@...> said:
| any possible compatibility issues (i can't see any but not sure) in this one with existing implementations like you discussed in the first one?
| Mark

| --------
| sent from a mobile device. please forgive any typos.

|| On Nov 2, 2022, at 12:01 AM, Krste Asanovic <krste@...> wrote:
||
|| 
|| The second fix is just a clarification of a missing case in the spec:
||
|| "vsetvl[i] with rd=rs1=x0 is reserved if vill was 1 beforehand."
||
|| The "vsetvl[i] x0, x0" form is defined in terms of whether VLMAX and
|| hence vl might change, but if the vtype setting has vill set, then
|| there is no valid existing VLMAX.
||
|| Krste
||
||
||
||
||