https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68110
--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> --- (separately from the missing DCE at RTL level) Replacing __builtin_sub_overflow (a, b, &r) with a < b when r is unused is something we could already easily do at the GIMPLE level, but since we don't have any pass to generate __builtin_sub_overflow from a-b and a<b and don't CSE __builtin_sub_overflow with either of those, I am a bit wary of dropping the builtin too early.