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.

Reply via email to