[llvm] APFloat: Add minimumnum and maximumnum (PR #96304)
YunQiang Su via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 21 07:36:55 PDT 2024
================
@@ -1496,6 +1509,19 @@ inline APFloat maximum(const APFloat &A, const APFloat &B) {
return A < B ? B : A;
}
+/// Implements IEEE 754-2019 maximumNumber semantics. Returns the larger
+/// of 2 arguments, not propagating NaNs and treating -0 as less than +0.
+LLVM_READONLY
+inline APFloat maximumnum(const APFloat &A, const APFloat &B) {
+ if (A.isNaN())
+ return B.isNaN() ? B.makeQuiet() : B;
----------------
wzssyqa wrote:
No. in `lib/Support/APFloat.cpp`,
```
void IEEEFloat::makeQuiet() {
assert(isNaN());
if (semantics->nonFiniteBehavior != fltNonfiniteBehavior::NanOnly)
APInt::tcSetBit(significandParts(), semantics->precision - 2);
}
```
It means that, only NaN is supported by `makeQuiet `.
https://github.com/llvm/llvm-project/pull/96304
More information about the llvm-commits
mailing list