Closed JerryShih closed 10 months ago
cc @kasanovic
As you quoted, "EGSMAX is the largest EGS supported by the implementation." The implementation chooses the value of EGSMAX for a given vtype setting, so of course it can be less than VLMAX.
Assume VLEN=128, EGW=128, EGS=4 and EEW=32 for the specific instruction.
Could the implementation have the EGSMAX<16 for LMUL=4 case? Why just make EGSMAX=16?
Consider the case that an implementation doesn't support any instructions that use element groups. Then obviously it doesn't make sense to have EGSMAX>1, so why describe EGSMAX as being 16?
From an implementation perspective, the rationale is that you normally need to collect all of the elements of a group together to process them. Supporting very large element groups can therefore become expensive.
Anyway, I think the question is answered: it's an implementation parameter.
From the doc: https://github.com/riscv/riscv-v-spec/blob/e100d4321d7ded558846c32590f9efb0887515da/element_groups.adoc?plain=1#L70
I think the EGSMAX is equal to VLMAX. What's the counterexample for
EGSMAX!=VLMAX
?Assume
EGSMAX==VLMAX
. I think the vl will be VLMAX whenAVL > VLMAX
.