This source file includes following definitions.
- __arch_hweight32
- __arch_hweight16
- __arch_hweight8
- __arch_hweight64
1
2
3
4
5
6
7 #ifndef _ASM_ARCH_HWEIGHT_H
8 #define _ASM_ARCH_HWEIGHT_H
9
10 #ifdef ARCH_HAS_USABLE_BUILTIN_POPCOUNT
11
12 #include <asm/types.h>
13
14 static inline unsigned int __arch_hweight32(unsigned int w)
15 {
16 return __builtin_popcount(w);
17 }
18
19 static inline unsigned int __arch_hweight16(unsigned int w)
20 {
21 return __builtin_popcount(w & 0xffff);
22 }
23
24 static inline unsigned int __arch_hweight8(unsigned int w)
25 {
26 return __builtin_popcount(w & 0xff);
27 }
28
29 static inline unsigned long __arch_hweight64(__u64 w)
30 {
31 return __builtin_popcountll(w);
32 }
33
34 #else
35 #include <asm-generic/bitops/arch_hweight.h>
36 #endif
37
38 #endif