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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
One missed optimization is:

  <bb 6> [local count: 58465242]:
  if (summ_2(D) <= 29)
    goto <bb 8>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 29232621]:
  _116 = summ_2(D) + 1;

  <bb 8> [local count: 105237435]:
  # _114 = PHI <_116(7), 31(6)>
  # __new_capacity_75 = PHI <summ_2(D)(7), 30(6)>


that is:
__new_capacity_75 = Min<30, summ_2>;
_114 = __new_capacity_75 + 1;


unsigned f(unsigned a, unsigned &b)
{
  unsigned c = a;
  unsigned d = a+1;
  if (a <= 29)
    {
      c = 30;
      d = 31;
    }
  b = d;
  return c;
}

Reply via email to