https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51492
--- Comment #23 from Uroš Bizjak <ubizjak at gmail dot com> --- Current compiler produces (-O3): f: movl $4194368, %edx movl $head, %eax movd %edx, %xmm1 pshufd $0, %xmm1, %xmm1 .L2: movdqa (%rax), %xmm0 addq $16, %rax psubusw %xmm1, %xmm0 movaps %xmm0, -16(%rax) cmpq $head+131072, %rax jne .L2 ret