[libc-commits] [libc] [libc][math][c23] Implement canonicalize functions (PR #85940)
via libc-commits
libc-commits at lists.llvm.org
Thu Mar 21 07:51:59 PDT 2024
================
@@ -73,6 +73,17 @@ LIBC_INLINE T fdim(T x, T y) {
return (x > y ? x - y : 0);
}
+template <typename T, cpp::enable_if_t<cpp::is_floating_point_v<T>, int> = 0>
+LIBC_INLINE T canonicalize(T *cx, const T *x) {
+ FPBits<T> sx(*x);
+ if (sx.is_signaling_nan()) {
----------------
lntue wrote:
We can optimize it a bit by putting this rare condition under `LIBC_UNLIKELY` (from `src/__support/macros/optimization.h` header)
https://github.com/llvm/llvm-project/pull/85940
More information about the libc-commits
mailing list