On 6/22/23 00:39, Richard Biener wrote:
I suspect there's no way to specify the desired semantics? OTOH
code that looks at the MEM operand only and not the insn (which
should have some UNSPEC wrapped) needs to be conservative, so maybe
the alias code shouldn't assume that a (mem:V16SI ..) actually
performs an access of the size of V16SI at the specified location?
I'm not aware of a way to express the semantics fully right now. We'd
need some way to indicate that the MEM is a partial and pass along the
actual length.
We could do both through MEM_ATTRS with some work. For example we could
declare that for vector modes full semantic information is carried in
the MEM_ATTRS rather than by the mode itself. So it falls into a space
between how we currently think of something like V16SI and BLK. The
mode specifies a maximum size and how to interpret the elements. But
actual size and perhaps mask info would be found in MEM_ATTRS.
jeff