Does VWSLL.VV keep SEW width?
No. The destination element width is 2*SEW.
Vector widening logical left shift: zero-extend vs2 elements to 2*SEW, then shift left by a vector register amount.
VWSLL.VV is a Zvbb vector widening logical-left-shift instruction. Each active SEW element from vs2 is zero-extended to 2*SEW and shifted left by the vector register amount; only the low log2(2*SEW) bits are used.
VWSLL.VV is not ordinary VSLL; it zero-extends each SEW source element to 2*SEW and writes a widened destination group.
Understand this scenario with real code like «vwsll.vv vd, vs2, vs1».
Understand this scenario with real code like «vwsll.vv vd, vs2, vs1».
No. The destination element width is 2*SEW.
The official description zero-extends before shifting, so do not treat it as signed widening.