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?

Reply via email to