https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116635
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note the reason why setting LOGICAL_OP_NON_SHORT_CIRCUIT works is because combineif rejects trapping condition early but it tries to use match-and-simplify and with LOGICAL_OP_NON_SHORT_CIRCUIT set, the optimization happens in fold where one side does not trap that is __builtin_isunordered is known not to trap. PR 91425 record the issue with combineif really.