https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103354
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2021-11-22 Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- After my patch for PR 92342, we get: _4 = a_9(D) == b_10(D) ? c_11(D) : 0; _8 = a_9(D) != b_10(D) ? d_12(D) : 0; _13 = _4 | _8; A few patterns are needed here really: One pattern simple is: (simplify (bit_ior:c (cond @0 @1 integer_zero_p) (cond @0 integer_zero_p @2)) (cond @0 @1 @2)) But the next one is harder and requires a double for loop. I will handle it soon.