https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68695
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
And with -fno-if-conversion on x86_64 I see
foo:
.LFB0:
.cfi_startproc
cmpl %esi, %edi
jle .L2
movl %edx, %esi
movl %edx, %edi
.L2:
movl %edi, %eax
imull %esi, %eax
ret
thus exactly your "good" code. I doubt this is if-conversion at play. Do
you have some machine-reorg that duplicates tails? Maybe it's shrink-wrapping?
Where does the tail get duplicated?
