https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91201
--- Comment #15 from Joel Yliluoma <bisqwit at iki dot fi> --- Seems to work neatly now. Any reason why on vector size 128, non-AVX, it does the low byte move through the red zone? Are pextrb or movd instructions not available? Or does ABI specify that the upper bits of the eax register must be zero? movaps XMMWORD PTR [rsp-40], xmm2 movzx eax, BYTE PTR [rsp-40] Clang does just a simple movd here. movd eax, xmm1