http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53192
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-05-22 11:52:12 UTC --- BTW, to avoid that warning, you could use in C: extern __inline __m128i __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) _mm_i32gather_epi64 ( #ifdef __cplusplus long long int const *base, #else union __attribute__((__transparent_union__)) { long long int const *__ll; long int const *__l; } base, #endif __m128i index, const int scale) and for C++ add another overload (of course, for _LP64 only).