https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115777
--- Comment #1 from Sam James <sjames at gcc dot gnu.org> --- 11 vs 12: ``` --- /dev/fd/63 2024-07-03 22:38:09.929726424 +0100 +++ /dev/fd/62 2024-07-03 22:38:09.932726456 +0100 @@ -5,24 +5,28 @@ insertion_sort.constprop.0: .LFB25: .cfi_startproc - leaq 4(%rdi), %r8 + movq %rdi, %r8 movl $1, %esi .p2align 4,,10 .p2align 3 .L2: - movq %r8, %rax + movq %r8, %rdx + jmp .L3 .p2align 4,,10 .p2align 3 +.L5: + vmovq %xmm1, (%rdx) + leaq -4(%rdx), %rax + cmpq %rdi, %rdx + je .L6 + movq %rax, %rdx .L3: - movl -4(%rax), %edx - movl (%rax), %ecx - cmpl %edx, %ecx - jnb .L6 - movl %ecx, -4(%rax) - subq $4, %rax - movl %edx, 4(%rax) - cmpq %rax, %rdi - jne .L3 + vmovq (%rdx), %xmm0 + vmovd %xmm0, %ecx + vpextrd $1, %xmm0, %eax + vpshufd $225, %xmm0, %xmm1 + cmpl %ecx, %eax + jb .L5 .L6: addq $1, %rsi addq $4, %r8 @@ -77,7 +81,7 @@ vzeroupper call clock@PLT leaq .LC0(%rip), %rsi - movl $1, %edi + movl $2, %edi subq %rbx, %rax movq %rax, %rdx xorl %eax, %eax ```