https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68484
--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Vladimir Sedach from comment #2) > It is not just about "long long". It isn't about long long at all, it is about whether your code is valid. In your latest example, you are casting an int* to a float*, that's pretty much the definition of an aliasing violation. The types __m128 etc are documented as allowing aliasing, but I don't think that extends to other operands of the intrinsics.