https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92578
--- Comment #3 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Richard Biener from comment #1)
> With newcnt-=2 you get
>
> movl %edx, %r8d
> movl %esi, %eax
> leal -2(%rsi), %edx
> cmpl %r8d, %edi
> cmove %edx, %eax
> ret
>
It could be better using cmovne
leal -2(%rsi), %eax
cmpl %edx, %edi
cmovnel %esi, %eax
retq
