On Wed, Aug 28, 2024 at 3:21 PM Robin Dapp <rdapp....@gmail.com> wrote: > > > Hmm - but how can you call this ambiguous? VLEN and LMUL is a runtime > > property(?), so unknown to the compiler(?) - as you do below the only > > way to code generate would be a agnostic way such as with a slide-down. > > But can't you always to this, for all subregs of this sort (even with > > offset)? > > LMUL (register group size) is a compile-time constant while VLEN is not.
Hmm, but LMUL is not reflected in the assembly? Or at least it doesn't affect register allocation? > Once we have VLS modes that span more than the minimum runtime size of > a vector it's ambiguous whether the mode occupies two minimum-size vectors > or one dynamically larger one. But V4DF with LMUL == 2 has to always span two registers? Or is the HW free to use a single VLA register for it? What's the use of LMUL then? > Did you mean the agnostic way should just be the default expansion for > each such subreg? Yes, as far as I can see LMUL becomes part of the unknown VLEN, so you have to operate on VLS modes like on VLA modes iff LMUL != 1 Richard. > > Regards > Robin