[Bug c/66194] emit vectorization instruction for not aligned data(amd64), -fno-strict-aliasing not help

dushistov at mail dot ru gcc-bugzilla@gcc.gnu.org
Mon May 18 18:30:00 GMT 2015


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

--- Comment #8 from Evgeniy Dushistov <dushistov at mail dot ru> ---
(In reply to Markus Trippelsdorf from comment #7)
> 6.3.2.3 p7:
> »A pointer to an object type may be converted to a pointer to a different
> object type. If the resulting pointer is not correctly aligned for the
> referenced type, the behavior is undefined.«

Yep, but what does it mean "not correctly aligned"?

x86/amd64 allow misaligned memory access, ABI also
allow this:

the AMD64 architecture in general does not require
all data accesses to be properly aligned
The only exceptions are
that __m128 and __m256 must always be aligned properly,


So is it "gcc only" requirements for x86/amd64, that
things like
char buf[8] __attribute__ ((aligned (8)));
int *p = &buf[3];

"p" is not correctly aligned?


More information about the Gcc-bugs mailing list