5 #ifndef GKO_PUBLIC_CORE_BASE_INTRINSICS_HPP_
6 #define GKO_PUBLIC_CORE_BASE_INTRINSICS_HPP_
12 #include <ginkgo/core/base/types.hpp>
22 GKO_ATTRIBUTES GKO_INLINE
int popcount(
uint32 bitmask)
24 #if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__)
25 return __popc(bitmask);
27 std::bitset<32> bits{bitmask};
36 GKO_ATTRIBUTES GKO_INLINE
int popcount(
uint64 bitmask)
38 #if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__)
39 return __popcll(bitmask);
41 std::bitset<64> bits{bitmask};
50 #endif // GKO_PUBLIC_CORE_BASE_INTRINSICS_HPP_