Constraint of vector types in Zve32*
Opened this issue · 2 comments
In this doc: https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/main/doc/rvv-intrinsic-spec.adoc
There is a constraint:
Types with subscript "" is available when ELEN >= 64 (that is, unavailable under Zve32 and require at least Zve64x).
Why these vector types are not available for Zve32*?
This sentence from section 3.4.2 in the spec removes LMUL=1/8 for ELEN=32. "For standard vector extensions with ELEN=32, fractional LMULs of 1/2 and 1/4 must be supported. For standard vector extensions with ELEN=64, fractional LMULs of 1/2, 1/4, and 1/8 must be supported"
The other text around there explains the rest.
The summary is that there are no fractional LMULs with SEW==ELEN. And the fractional types that exist are the ones needed to be able to widen to LMUL==1 SEW==ELEN.
This sentence from section 3.4.2 in the spec removes LMUL=1/8 for ELEN=32. "For standard vector extensions with ELEN=32, fractional LMULs of 1/2 and 1/4 must be supported. For standard vector extensions with ELEN=64, fractional LMULs of 1/2, 1/4, and 1/8 must be supported"
The other text around there explains the rest.
The summary is that there are no fractional LMULs with SEW==ELEN. And the fractional types that exist are the ones needed to be able to widen to LMUL==1 SEW==ELEN.
Thanks to response. So vfloat16mf4_t
and vfloat32mf2_t
should also be not available for Zve32f, but for Zve64f, are they available too?