riscv: Optimize hweight API with Zbb extension
authorXiao Wang <xiao.w.wang@intel.com>
Sun, 12 Nov 2023 09:52:44 +0000 (17:52 +0800)
committerPalmer Dabbelt <palmer@rivosinc.com>
Thu, 18 Jan 2024 02:18:40 +0000 (18:18 -0800)
commit55ca8d7aa2af3ebdb6f85cccf1b0703d031c1678
treeae97ea25f9f1e3a4c91cca7520bad636f3fa4db5
parentc4db7ff7a9edf504752704f08aabb5554bd6c37f
riscv: Optimize hweight API with Zbb extension

The Hamming Weight of a number is the total number of bits set in it, so
the cpop/cpopw instruction from Zbb extension can be used to accelerate
hweight() API.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Link: https://lore.kernel.org/r/20231112095244.4015351-1-xiao.w.wang@intel.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/include/asm/arch_hweight.h [new file with mode: 0644]
arch/riscv/include/asm/bitops.h