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).