------- Comment #8 from pinskia at gcc dot gnu dot org 2008-12-16 00:03 ------- int16_t* ip = (int16_t*)&m1; printf("%hi %hi %hi %hi %hi %hi %hi %hi \n", *ip++, *ip++, *ip++, *ip++, *ip++, *ip++, *ip++, *ip);
That is violating C/C++ aliasing rules even if __m128i is marked with may_alias, the type you are accessing via is not marked as such. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38525