Re: [PATCH V3] blackfin: optimize ffz, __ffs, ffs, __fls, and fls functions

From: Joe Perches
Date: Fri Apr 15 2016 - 12:08:49 EST


On Fri, 2016-04-15 at 23:20 +0800, zengzhaoxiu@xxxxxxx wrote:
> From: Zeng Zhaoxiu <zhaoxiu.zeng@xxxxxxxxx>
>
> blackfin has popcount instruction (ONES), we can do the efficient
> computing (ffz, __ffs, ffs, __fls, and fls) use this instruction.
[]
> diff --git a/arch/blackfin/include/asm/bitops.h b/arch/blackfin/include/asm/bitops.h
[]
> +static inline unsigned int __arch_hweight64(__u64 w)
> +{
> + return __arch_hweight32((unsigned int)(w >> 32)) +
> +        __arch_hweight32((unsigned int)w);
> +}

trivia:  perhaps this is more readable as:

return __arch_hweight32(upper_32_bits(w)) +
       __arch_hweight32(lower_32_bits(w));