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 @@ -15314,6 +15314,33 @@ bool FloatExprEvaluator::VisitCallExpr(const CallExpr *E) {
15314
15314
Result = RHS;
15315
15315
return true;
15316
15316
}
15317
+
15318
+ case Builtin::BI__builtin_fmaximum_num:
15319
+ case Builtin::BI__builtin_fmaximum_numf:
15320
+ case Builtin::BI__builtin_fmaximum_numl:
15321
+ case Builtin::BI__builtin_fmaximum_numf16:
15322
+ case Builtin::BI__builtin_fmaximum_numf128: {
15323
+ APFloat RHS(0.);
15324
+ if (!EvaluateFloat(E->getArg(0), Result, Info) ||
15325
+ !EvaluateFloat(E->getArg(1), RHS, Info))
15326
+ return false;
15327
+ Result = maximumnum(Result, RHS);
15328
+ return true;
15329
+ }
15330
+
15331
+ case Builtin::BI__builtin_fminimum_num:
15332
+ case Builtin::BI__builtin_fminimum_numf:
15333
+ case Builtin::BI__builtin_fminimum_numl:
15334
+ case Builtin::BI__builtin_fminimum_numf16:
15335
+ case Builtin::BI__builtin_fminimum_numf128: {
15336
+ APFloat RHS(0.);
15337
+ if (!EvaluateFloat(E->getArg(0), Result, Info) ||
15338
+ !EvaluateFloat(E->getArg(1), RHS, Info))
15339
+ return false;
15340
+ Result = minimumnum(Result, RHS);
15341
+ return true;
15342
+ }
15343
+
15317
15344
}
15318
15345
}
15319
15346
Original file line number Diff line number Diff line change 58
58
59
59
// Check __has_constexpr_builtin
60
60
#if !__has_constexpr_builtin(__builtin_fmax) || \
61
- !__has_constexpr_builtin(__builtin_fmin)
61
+ !__has_constexpr_builtin(__builtin_fmin) || \
62
+ !__has_constexpr_builtin(__builtin_fmaximum_num) || \
63
+ !__has_constexpr_builtin(__builtin_fmaximum_num)
62
64
#error Clang should have these constexpr builtins
63
65
#endif
64
66
You can’t perform that action at this time.
0 commit comments