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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|rtl-optimization            |middle-end
            Summary|Bitwise multiplexing has    |Bitwise multiplexing with
                   |too much latency on POWER   |targets that have `a & ~b`

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
On the gimple the Canonical form is:
```
  _6 = b_2(D) ^ c_3(D);
  _7 = a_1(D) & _6;
  _4 = c_3(D) ^ _7;
```

Isel or some other method should turn it into:
```
 _6 = a_1(D) & b_2(D);
 _7 = .BIT_ANDN (c_3(D), a_1(D));
 _t = _6 | _7;
```

When BIT_ANDN optab exists.

Reply via email to