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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |pinskia at gcc dot 
gnu.org
             Status|NEW                         |ASSIGNED
         Depends on|                            |96921

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Looks like:
  _4 = (int) _2;
...
  i.1_15 = (unsigned short) _2;
  _16 = 1 - i.1_15;
  _6 = (int) _16;
...
  _8 = _4 | _6;



Simplify to just
  _4 = (int) _2;
...
_t = _2 ^ 1;
_6 = (int)_t;
...
  _8 = _4 | _6;

Which then simplifies down to:
_8 = 1; (because (_2 ^ 1) | (_2) == 1)

Which then would be optimized.
Let me look.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96921
[Bug 96921] Failure to optimize combined boolean not patterns

Reply via email to