https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120980

--- Comment #1 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
I'm not sure that I'd draw the same conclusion. I view it as the vectorizer has
put a 32-byte alignment requirement on the object and so I'd consider the
object itself to be 32-bytes sized. 

So to the notion of the object the vectorizer has it's a partial out of bounds
access.

Otherwise if a1 was just {0} even doing two element vector loads, and later
scalarizing the loads means that that the second scalar access becomes
"invalid" while the vector version would be valid.

So I don't think this works unless the object is considered to be sized
according to the alignment.

Reply via email to