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) {
14851
14851
Result = RHS;
14852
14852
return true;
14853
14853
}
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
+
14854
14881
}
14855
14882
}
14856
14883
Original file line number Diff line number Diff line change 54
54
55
55
// Check __has_constexpr_builtin
56
56
#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)
58
60
#error Clang should have these constexpr builtins
59
61
#endif
60
62
You can’t perform that action at this time.
0 commit comments