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

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #5)
>   _10 = _9 >> 1;
>   _11 = (bool) _10;
>   if (_11 != 0)
> 
> 
> Should just be optimized to:
> _t = _9 & 1
> if (_t != 0)
> 
> Let me add that to match.

We do handle:
/* Fold ((X << C1) & C2) cmp C3 into (X & (C2 >> C1)) cmp (C3 >> C1)
        ((X >> C1) & C2) cmp C3 into (X & (C2 << C1)) cmp (C3 << C1).  */

Reply via email to