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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|tree-optimization           |middle-end
   Last reconfirmed|                            |2021-12-17
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I think this is a middle-end issue with respect to expanding:
  _1 = x_16 <= 31;
  _2 = x_16 == 92;
  _3 = _1 | _2;
  _4 = x_16 == 127;
  _6 = _3 | _4;
  if (_6 != 0)

The question becomes should we produce the above for the gimple level and then
re-introduce the conditionals (which is done for the last IOR).
For aarch64 we produce the best code possible with the above code:
        cmp     w2, 92
        ccmp    w2, 31, 0, ne
        ccmp    w2, w3, 4, hi
        beq     .L5

But only at -O2 on the trunk (-Os since GCC 7 does not do it I have not looked
into why).

Reply via email to