https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53090
amker at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amker at gcc dot gnu.org --- Comment #7 from amker at gcc dot gnu.org --- We are almost there. The generated assembly for both attached and extracted case is like: .L16: movl -4(%r12,%rdx,4), %edi movl (%rsi,%rax,4), %r11d movl %r11d, -4(%r12,%rdx,4) movl %edi, (%rsi,%rax,4) movl %edx, %r11d movl %eax, %edi addq $1, %rdx subq $1, %rax cmpl %edi, %r11d jl .L16