https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101703
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- A few more things to optimize: ``` bool minusne(bool a, bool b) { return (a - b) != 1; } bool ornot(bool a, bool b) { return !a | b; // or a <= b } bool minusne0(bool a, bool b) { return (a - b) != -1; } bool ornot0(bool a, bool b) { return a | !b; // or b <= a } bool minuseq(bool a, bool b) { return (a - b) == 1; } bool andnot(bool a, bool b) { return a & !b; // or b < a } bool minuseq0(bool a, bool b) { return (a - b) == -1; } bool andnot0(bool a, bool b) { return !a & b; // or a < b } ``` minusne{,0} should be optimized into ornot{,0}. minuseq{,0} should be optimized into andnot{,0}.