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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|c                           |middle-end
           Keywords|                            |wrong-code
   Last reconfirmed|                            |2021-06-09
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |WAITING

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So the tree level looks fine for me:

  _1 = (unsigned int) i_5(D);
  _2 = -_1;
  _9 = (unsigned int) m_6(D);
  _3 = _2 & _9;
  _4 = _3 - _1;
  _7 = (int) _4;

---- CUT ----
This is for:
int f (long int m, long int i)
{
  return ((m & ~(i - 1)) - i);
}

---- CUT ----
The assembly produced for both x86_64 and aarch64 looks correct.
What target is this on?

Reply via email to