https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94708
Bug ID: 94708 Summary: rtl combine should consider NaNs when generate fp min/max Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: z.zhanghaijian at huawei dot com Target Milestone: --- Rtl combine should consider NaNs when generate fp min/max. There is detailed discussion information here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94665 Proposed patch: diff --git a/gcc/combine.c b/gcc/combine.c index cff76cd3303..eaf93a05235 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -6643,7 +6643,8 @@ simplify_if_then_else (rtx x) /* Look for MIN or MAX. */ - if ((! FLOAT_MODE_P (mode) || flag_unsafe_math_optimizations) + if ((! FLOAT_MODE_P (mode) + || (flag_unsafe_math_optimizations && flag_finite_math_only)) && comparison_p && rtx_equal_p (XEXP (cond, 0), true_rtx) && rtx_equal_p (XEXP (cond, 1), false_rtx)