[libc-commits] [libc] [libc] Added type-generic macros for fixed-point functions (PR #129371)
Ishaan Verma via libc-commits
libc-commits at lists.llvm.org
Wed Mar 5 12:55:11 PST 2025
================
@@ -323,6 +323,46 @@
#define ULACCUM_EPSILON 0x1.0p-32ULK
#endif // ULACCUM_EPSILON
+#define absfx(x) _Generic((x), \
+ fract: LIBC_NAMESPACE::absr, \
+ short fract: LIBC_NAMESPACE::abshr, \
+ long fract: LIBC_NAMESPACE::abslr, \
+ _Accum: LIBC_NAMESPACE::absk, \
+ short _Accum: LIBC_NAMESPACE::abshk, \
+ long _Accum: LIBC_NAMESPACE::abslk \
+)(x)
+
+#define countlsfx(x) _Generic((x), \
+ fract: LIBC_NAMESPACE::countlsr, \
+ short fract: LIBC_NAMESPACE::countlshr, \
+ long fract: LIBC_NAMESPACE::countlslr, \
+ _Accum: LIBC_NAMESPACE::countlsk, \
+ short _Accum: LIBC_NAMESPACE::countlshk, \
+ long _Accum: LIBC_NAMESPACE::countlslk, \
+ unsigned fract: LIBC_NAMESPACE::countlsur, \
+ unsigned short fract: LIBC_NAMESPACE::countlsuhr, \
+ unsigned long fract: LIBC_NAMESPACE::countlsulr, \
+ unsigned _Accum: LIBC_NAMESPACE::countlsuk, \
+ unsigned short _Accum: LIBC_NAMESPACE::countlsuhk, \
+ unsigned long _Accum: LIBC_NAMESPACE::countlsulk \
+)(x)
+
+#define roundfx(x, y) _Generic((x), \
+ fract: LIBC_NAMESPACE::roundr, \
+ short fract: LIBC_NAMESPACE::roundhr, \
+ long fract: LIBC_NAMESPACE::roundlr, \
+ _Accum: LIBC_NAMESPACE::roundk, \
+ short _Accum: LIBC_NAMESPACE::roundhk, \
+ long _Accum: LIBC_NAMESPACE::roundlk, \
+ unsigned fract: LIBC_NAMESPACE::roundur, \
+ unsigned short fract: LIBC_NAMESPACE::rounduhr, \
+ unsigned long fract: LIBC_NAMESPACE::roundulr, \
+ unsigned _Accum: LIBC_NAMESPACE::rounduk, \
+ unsigned short _Accum: LIBC_NAMESPACE::rounduhk, \
+ unsigned long _Accum: LIBC_NAMESPACE::roundulk \
+)(x, y)
----------------
lazyprop wrote:
i've added `using LIBC_NAMESPACE::*`. apologies for the delay.
https://github.com/llvm/llvm-project/pull/129371
More information about the libc-commits
mailing list