https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110992
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #7) > Actually we should transform it into > ((convert)zero_one_valued_p) & (a != 0) > > Or ^1 for the == 0 case ... > > This should allow for better code I think. Or better yet: (((Convert)cmp) & b) != 0 Into cmp & (b!=0) Icmp for == 0. Now I have seen that before too.