https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106470
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The easiest way to fix this is to use GNU-C vectors like: for (size_t i = 0; i < 16; i++) { typedef __attribute__((vector_size(sizeof(__m256i)) )) uint16_t myvector_t; myvector_t t; t = (myvector_t)tmp; printf(" %04x", t[i]); }