http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49064
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-20 13:24:38 UTC --- The code has to reread this->m_Data, v1.m_Data and v2.m_Data in every loop, because writes through __m128i * could very well clobber X, points-to in this case can't figure out anything, only TBAA would, but the __m{64,128}* types as designed can alias anything. It would really surprise me if Intel's __m128i can alias ints, longs and many other things, but can't alias X in this case.