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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
             Target|                            |x86_64-linux-gnu
          Component|rtl-optimization            |target
           Severity|normal                      |enhancement

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
But for aarch64 we get:
        subs    w0, w0, w1 //w0 = w0 - w1; setting overflow bit of flags
        mvn     w1, w0  // w1 = ~w0
        orr     w1, w1, 1 // w1 = w1 | 1
        csel    w0, w1, w0, vs // w0 = over ? w1 : w0
        ret

Which is the best and better than with branches.

So this is a fully a target issue.

Reply via email to