vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Jun 28 12:40:52 2015 +0300| [cade92d0c4a41a58e03d24d872ee2d0a6ab9ff7c] | committer: Rémi Denis-Courmont
include: add popcountll() variant of popcount() for long long > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cade92d0c4a41a58e03d24d872ee2d0a6ab9ff7c --- include/vlc_common.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/vlc_common.h b/include/vlc_common.h index 5baeb45..d6a6322 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -557,6 +557,23 @@ static inline unsigned popcount (unsigned x) #endif } +/** Bit weight of long long */ +VLC_USED +static inline int popcountll(unsigned long long x) +{ +#if VLC_GCC_VERSION(3,4) + return __builtin_popcountll(x); +#else + int count = 0; + while (x) + { + count += x & 1; + x = x >> 1; + } + return count; +#endif +} + VLC_USED static inline unsigned parity (unsigned x) { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
