http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60819
--- Comment #8 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to rguent...@suse.de from comment #6) > Not exactly - it's again the wrapping that will fail. That seems strange to me. From the doc of may_alias: "Accesses through pointers to types with this attribute are not subject to type-based alias analysis, but are instead assumed to be able to alias any other type of objects." "This extension exists to support some vector APIs, in which pointers to one vector type are permitted to alias pointers to a different vector type." and indeed the x86 *intrin.h files cast between __m128i and __v4si (and many other combinations) all the time.