diff options
author | Xiao Wang <xiao.w.wang@intel.com> | 2023-11-12 17:52:44 +0800 |
---|---|---|
committer | Palmer Dabbelt <palmer@rivosinc.com> | 2024-01-17 18:18:40 -0800 |
commit | 55ca8d7aa2af3ebdb6f85cccf1b0703d031c1678 (patch) | |
tree | ae97ea25f9f1e3a4c91cca7520bad636f3fa4db5 /arch/riscv/include/asm/bitops.h | |
parent | c4db7ff7a9edf504752704f08aabb5554bd6c37f (diff) |
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>
Diffstat (limited to 'arch/riscv/include/asm/bitops.h')
-rw-r--r-- | arch/riscv/include/asm/bitops.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/riscv/include/asm/bitops.h b/arch/riscv/include/asm/bitops.h index 224b4dc02b50..9ffc35537024 100644 --- a/arch/riscv/include/asm/bitops.h +++ b/arch/riscv/include/asm/bitops.h @@ -271,7 +271,9 @@ legacy: #include <asm-generic/bitops/fls64.h> #include <asm-generic/bitops/sched.h> -#include <asm-generic/bitops/hweight.h> +#include <asm/arch_hweight.h> + +#include <asm-generic/bitops/const_hweight.h> #if (BITS_PER_LONG == 64) #define __AMO(op) "amo" #op ".d" |