https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107608
--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> --- See #c10, I think even with comparisons we need to be careful. One thing is whether we can prove one of the branches will be unreachable, we can do that and replace that branch with __builtin_unreachable, but if trapping math is on, if a comparison is possibly trapping (operands could be NAN as checked by frange) or if it is the last use of some SSA_NAME that needs to be kept live because its computation is possibly trapping, I think we need to preserve the comparison. One question is if the default -ftrapping-math should cover all exceptions or just the some subset, invalid/overflow are the worst ones, then underflow and least importance is inexact IMHO, pretty much anything can be inexact...