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