https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109901
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > bool0 - bool1 == 0 -> !bool0 & !bool1 -> !(bool0 | bool1) Sorry I messed this one up: bool0 - bool1 == 0 -> (bool0 & bool1) | (!bool0 & !bool1)