================ @@ -15338,16 +15338,11 @@ bool FloatExprEvaluator::VisitCallExpr(const CallExpr *E) { case Builtin::BI__builtin_fmaxl: case Builtin::BI__builtin_fmaxf16: case Builtin::BI__builtin_fmaxf128: { - // TODO: Handle sNaN. APFloat RHS(0.); if (!EvaluateFloat(E->getArg(0), Result, Info) || !EvaluateFloat(E->getArg(1), RHS, Info)) return false; - // When comparing zeroes, return +0.0 if one of the zeroes is positive. - if (Result.isZero() && RHS.isZero() && Result.isNegative()) - Result = RHS; - else if (Result.isNaN() || RHS > Result) - Result = RHS; + Result = maxnum(Result, RHS); ---------------- arsenm wrote:
This is a separate change to fix reimplementing it in clang https://github.com/llvm/llvm-project/pull/112854 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits