[PATCH v2] RISC-V: Use builtin for ffs and ffsll while supported extension available

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Tue Jan 28 11:50:04 GMT 2025



On 08/11/24 10:41, Julian Zhu wrote:
> Hardware ctz instructions are available in the RISC-V Zbb and XTheadBb extension. With special `-march` flags defined, we can generate more simplified code compared to the generic implementation of `ffs`/`ffsll`.
> 
> Signed-off-by: Julian Zhu <julian.oerv@isrc.iscas.ac.cn>

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  sysdeps/riscv/math-use-builtins-ffs.h | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>  create mode 100644 sysdeps/riscv/math-use-builtins-ffs.h
> 
> diff --git a/sysdeps/riscv/math-use-builtins-ffs.h b/sysdeps/riscv/math-use-builtins-ffs.h
> new file mode 100644
> index 0000000000..97d13e9496
> --- /dev/null
> +++ b/sysdeps/riscv/math-use-builtins-ffs.h
> @@ -0,0 +1,10 @@
> +#if __GNUC_PREREQ (12, 0) && defined __riscv_zbb
> +#  define USE_FFS_BUILTIN 1
> +#  define USE_FFSLL_BUILTIN 1
> +#elif __GNUC_PREREQ (13, 0) && defined __riscv_xtheadbb
> +#  define USE_FFS_BUILTIN 0
> +#  define USE_FFSLL_BUILTIN 1
> +#else
> +#  define USE_FFS_BUILTIN 0
> +#  define USE_FFSLL_BUILTIN 0
> +#endif



More information about the Libc-alpha mailing list