https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113003
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- int bar (unsigned __int128 x) { return __builtin_sub_overflow_p (340282366920938463463374607431768211457uwb, x, 0); } while it doesn't ICE is also something that has to be lowered and not left until expansion.