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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |pinskia at gcc dot 
gnu.org

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
After r14-1597-g64d90d06d2db , we are just missing:
```
int
src_int (int a, int b)
{
    return (a | b) & (a & b);
}
```
into:
```
int
src_int_ (int a, int b)
{
    return (a & b);
}
```
Which is detected at the RTL level though.

This is 

So mine:
```
(for bitop (bit_and bit_ior)
     rbitop (bit_ior bit_and)
  /* (x | y) & (x & z) -> (x & z) */
  /* (x & y) | (x | z) -> (x | z) */
 (simplify
  (bitop:c (rbitop:c @0 @1) (bitop:c@3 @0 @2))
  @3)
```

Reply via email to