> Am 25.11.2024 um 15:36 schrieb Robin Dapp <rdapp....@gmail.com>:
> 
> 
>> 
>> ...it's not clear to me that we should define the upper bits of the
>> byte to be zero.  What would rely on that?  Is it something that we'd
>> require for all loads and stores of such modes?

Btw, we’ve been there on the tree level with native encode/interpret as well.  
Also with
Uses of masks where we ended up with explicit masking before uses instead.

Richard 

> Yes, I meant fewer than BITS_PER_UNIT bits in total.  As opposed to SVE's
> "balanced" mask representation in riscv's case the bits are packed at the
> beginning.
> 
> Loads and stores of masks only operate on the bits the mask actually
> contains so when we e.g. have four vector units/elements only four
> mask bits are loaded or stored.
> 
> The mode size of those very small modes is still one byte, i.e. we have
> padding for them.  But this only matters for the internal representation
> of those modes (and has been the source of several issues already of
> course, the masked else being one of them I believe).
> 
> How does encoding work for SVE's small mask modes?  I suppose
> 
>      unsigned int elt_bits = vector_element_size (GET_MODE_PRECISION (mode),
>                           GET_MODE_NUNITS (mode));
> 
> is != 1 but rather adjusted so a byte is filled?
> 
> For our mask modes anything else but zero padding makes no sense, so how
> could we clarify this?

Reply via email to