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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think GCC is correct in assuming that x * x is positive since overflow with
signed arithmetic is undefined.  Thus on GIMPLE we elide

  _1 = x_2(D) * x_2(D);
  t_3 = (unsigned int) _1;
  _4 = (long long unsigned int) t_3;

to

  _1 = x_2(D) * x_2(D);
  _4 = (long long unsigned int) _1;

Reply via email to