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 @@ -15310,6 +15310,33 @@ bool FloatExprEvaluator::VisitCallExpr(const CallExpr *E) {
15310
15310
Result = RHS;
15311
15311
return true;
15312
15312
}
15313
+
15314
+ case Builtin::BI__builtin_fmaximum_num:
15315
+ case Builtin::BI__builtin_fmaximum_numf:
15316
+ case Builtin::BI__builtin_fmaximum_numl:
15317
+ case Builtin::BI__builtin_fmaximum_numf16:
15318
+ case Builtin::BI__builtin_fmaximum_numf128: {
15319
+ APFloat RHS(0.);
15320
+ if (!EvaluateFloat(E->getArg(0), Result, Info) ||
15321
+ !EvaluateFloat(E->getArg(1), RHS, Info))
15322
+ return false;
15323
+ Result = maximumnum(Result, RHS);
15324
+ return true;
15325
+ }
15326
+
15327
+ case Builtin::BI__builtin_fminimum_num:
15328
+ case Builtin::BI__builtin_fminimum_numf:
15329
+ case Builtin::BI__builtin_fminimum_numl:
15330
+ case Builtin::BI__builtin_fminimum_numf16:
15331
+ case Builtin::BI__builtin_fminimum_numf128: {
15332
+ APFloat RHS(0.);
15333
+ if (!EvaluateFloat(E->getArg(0), Result, Info) ||
15334
+ !EvaluateFloat(E->getArg(1), RHS, Info))
15335
+ return false;
15336
+ Result = minimumnum(Result, RHS);
15337
+ return true;
15338
+ }
15339
+
15313
15340
}
15314
15341
}
15315
15342
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