LoongArch: Select ARCH_HAS_FAST_MULTIPLIER
authorXi Ruoyao <xry111@xry111.site>
Tue, 14 May 2024 04:24:18 +0000 (12:24 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Tue, 14 May 2024 04:24:18 +0000 (12:24 +0800)
LA464 and LA664 can do 32-bit/64-bit integer multiplication with a
latency of 4 cycles and a throughput of 2 ops per cycle.  It is
comparable to the mainstream x86 and arm64 cores, so we can select
ARCH_HAS_FAST_MULTIPLIER like them.

It speeds up __sw_hweight32() in lib/hweight.c for about 14% on LA464
and 11% on LA664, while __sw_hweight64() for about 30% on LA464 and 33%
on LA664.

Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/Kconfig

index 54ad04dacdee94d869b2bd7d0ab92a92e60fe642..1355ec0c69ccac333fe09860e3ac80f907f5b91c 100644 (file)
@@ -16,6 +16,7 @@ config LOONGARCH
        select ARCH_HAS_ACPI_TABLE_UPGRADE      if ACPI
        select ARCH_HAS_CPU_FINALIZE_INIT
        select ARCH_HAS_CURRENT_STACK_POINTER
+       select ARCH_HAS_FAST_MULTIPLIER
        select ARCH_HAS_FORTIFY_SOURCE
        select ARCH_HAS_KCOV
        select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS