Lines Matching full:w
9 static __always_inline unsigned long popcnt_z196(unsigned long w) in popcnt_z196() argument
13 asm volatile(".insn rrf,0xb9e10000,%[cnt],%[w],0,0" in popcnt_z196()
15 : [w] "d" (w) in popcnt_z196()
20 static __always_inline unsigned long popcnt_z15(unsigned long w) in popcnt_z15() argument
24 asm volatile(".insn rrf,0xb9e10000,%[cnt],%[w],8,0" in popcnt_z15()
26 : [w] "d" (w) in popcnt_z15()
31 static __always_inline unsigned long __arch_hweight64(__u64 w) in __arch_hweight64() argument
34 return popcnt_z15(w); in __arch_hweight64()
36 w = popcnt_z196(w); in __arch_hweight64()
37 w += w >> 32; in __arch_hweight64()
38 w += w >> 16; in __arch_hweight64()
39 w += w >> 8; in __arch_hweight64()
40 return w & 0xff; in __arch_hweight64()
42 return __sw_hweight64(w); in __arch_hweight64()
45 static __always_inline unsigned int __arch_hweight32(unsigned int w) in __arch_hweight32() argument
48 return popcnt_z15(w); in __arch_hweight32()
50 w = popcnt_z196(w); in __arch_hweight32()
51 w += w >> 16; in __arch_hweight32()
52 w += w >> 8; in __arch_hweight32()
53 return w & 0xff; in __arch_hweight32()
55 return __sw_hweight32(w); in __arch_hweight32()
58 static __always_inline unsigned int __arch_hweight16(unsigned int w) in __arch_hweight16() argument
61 return popcnt_z15((unsigned short)w); in __arch_hweight16()
63 w = popcnt_z196(w); in __arch_hweight16()
64 w += w >> 8; in __arch_hweight16()
65 return w & 0xff; in __arch_hweight16()
67 return __sw_hweight16(w); in __arch_hweight16()
70 static __always_inline unsigned int __arch_hweight8(unsigned int w) in __arch_hweight8() argument
73 return popcnt_z196((unsigned char)w); in __arch_hweight8()
74 return __sw_hweight8(w); in __arch_hweight8()