https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78200
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- So it's addq (%r14), %rdi jns .L98 .L98: cmpl $2, %r9d jne .L97 testq %rdi, %rdi jle .L97 vs. addq (%r14), %rdi cmpq $0, %rdi jge .L98 .L98: jle .L97 cmpl $2, %r9d jne .L97 I would guess the order of the branches after .L98 in the first case is unrelated (to be checked).