https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109901
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=101807, | |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=101703 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Basically the rule is bool0 - bool1 < 0 -> !bool0 & bool1 -> bool1 < bool0 bool0 - bool1 == -1 -> !bool0 & bool1 -> bool1 < bool0 bool0 - bool1 == 0 -> !bool0 & !bool1 -> !(bool0 | bool1) bool0 - bool1 == 1 -> bool0 & !bool1 -> bool0 < bool1 bool0 - bool1 > 0 -> bool0 & !bool1 -> bool0 < bool1 and see if that reduces. Note !bool0 & bool1 -> bool1 < bool0 (see PR 101807 for the opposite there)