[libcxx-commits] [libcxx] [libcxx] Use generic builtins for popcount, clz and ctz (PR #86563)
Nick Desaulniers via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Mar 29 10:21:08 PDT 2024
================
@@ -40,6 +43,9 @@ _LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 int __coun
if (__t == 0)
return numeric_limits<_Tp>::digits;
+#if __has_builtin(__builtin_ctzg)
+ return __builtin_ctzg(__t);
+#else // __has_builtin(__builtin_ctzg)
----------------
nickdesaulniers wrote:
https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fctzg
```suggestion
#if __has_builtin(__builtin_ctzg, numeric_limits<_Tp>::digits)
return __builtin_ctzg(__t);
#else // __has_builtin(__builtin_ctzg)
if (__t == 0)
return numeric_limits<_Tp>::digits;
```
https://github.com/llvm/llvm-project/pull/86563
More information about the libcxx-commits
mailing list