https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109638
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Hmm, but more generally if (n != x) n = 0; return n != 0; could be handled as well. Or if (n != x) n = 0; return n; -> return (n == x) * x; -1 might be another special case that CPUs can efficiently handle.