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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
   Target Milestone|---                         |11.0
         Resolution|---                         |FIXED
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
        .ident  "GCC: (GNU) 11.0.1 20210228 (experimental) [master revision
5d9d6c1cd8d:fd96f7217ea:ec9dc4fa0803cb85ae0b981ca0d6a406e8f6669c]"

Produces:

        addw    %di, %si
        movl    $-1, %eax
        cmovnc  %esi, %eax

Which is exactly what you would have expected really.

This is because we find ADD_OVERFLOW now:
  _6 = .ADD_OVERFLOW (a_2(D), b_3(D));
  c_4 = REALPART_EXPR <_6>;
  _7 = IMAGPART_EXPR <_6>;
  if (_7 == 0)
    goto <bb 4>; [65.00%]
  else
    goto <bb 3>; [35.00%]

  <bb 3> [local count: 375809640]:

  <bb 4> [local count: 1073741824]:
  # iftmp.0_1 = PHI <c_4(2), 65535(3)>

So fixed.

Reply via email to