https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80197

--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to rguent...@suse.de from comment #2)

> I think that if FDO says either the true or false edge is very likely
> then not if-converting the loop is best?  Or is a well-predicted
> conditional move as good as a well-predicted if?  10% missed branches
> would be more than

Please note that when if-conversion succeeded through noce_try_addcc, we don't
care about prediction anymore. The conversion converts:

        ucomisd %xmm5, %xmm4
        jb      .L17
.L16:
        addl    $1, %ebp
.L17:

to:

        ucomisd %xmm0, %xmm3    # 195   *cmpiudf/2      [length = 4]
        sbbl    $-1, %ebx       # 196   subsi3_carry/1  [length = 3]

IMO, this conversion should always be performed, as it is always a win.

Reply via email to