File tree Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -14851,6 +14851,33 @@ bool FloatExprEvaluator::VisitCallExpr(const CallExpr *E) {
1485114851 Result = RHS;
1485214852 return true;
1485314853 }
14854+
14855+ case Builtin::BI__builtin_fmaximum_num:
14856+ case Builtin::BI__builtin_fmaximum_numf:
14857+ case Builtin::BI__builtin_fmaximum_numl:
14858+ case Builtin::BI__builtin_fmaximum_numf16:
14859+ case Builtin::BI__builtin_fmaximum_numf128: {
14860+ APFloat RHS(0.);
14861+ if (!EvaluateFloat(E->getArg(0), Result, Info) ||
14862+ !EvaluateFloat(E->getArg(1), RHS, Info))
14863+ return false;
14864+ Result = maximumnum(Result, RHS);
14865+ return true;
14866+ }
14867+
14868+ case Builtin::BI__builtin_fminimum_num:
14869+ case Builtin::BI__builtin_fminimum_numf:
14870+ case Builtin::BI__builtin_fminimum_numl:
14871+ case Builtin::BI__builtin_fminimum_numf16:
14872+ case Builtin::BI__builtin_fminimum_numf128: {
14873+ APFloat RHS(0.);
14874+ if (!EvaluateFloat(E->getArg(0), Result, Info) ||
14875+ !EvaluateFloat(E->getArg(1), RHS, Info))
14876+ return false;
14877+ Result = minimumnum(Result, RHS);
14878+ return true;
14879+ }
14880+
1485414881 }
1485514882}
1485614883
Original file line number Diff line number Diff line change 5454
5555// Check __has_constexpr_builtin
5656#if !__has_constexpr_builtin(__builtin_fmax) || \
57- !__has_constexpr_builtin(__builtin_fmin)
57+ !__has_constexpr_builtin(__builtin_fmin) || \
58+ !__has_constexpr_builtin(__builtin_fmaximum_num) || \
59+ !__has_constexpr_builtin(__builtin_fmaximum_num)
5860#error Clang should have these constexpr builtins
5961#endif
6062
You can’t perform that action at this time.
0 commit comments