Message ID | 20240204002750.402652-1-xry111@xry111.site |
---|---|
State | New |
Headers | show |
Series | LoongArch: Use builtins for ffs and ffsll | expand |
On 03/02/24 21:27, Xi Ruoyao wrote: > On LoongArch GCC compiles __builtin_ffs{,ll} to basically > `(x ? __builtin_ctz (x) : -1) + 1`. Since a hardware ctz instruction is > available, this is much better than the table-driven generic > implementation. > > Tested on loongarch64. > > Signed-off-by: Xi Ruoyao <xry111@xry111.site> LGTM, thanks. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> > --- > sysdeps/loongarch/math-use-builtins-ffs.h | 2 ++ > 1 file changed, 2 insertions(+) > create mode 100644 sysdeps/loongarch/math-use-builtins-ffs.h > > diff --git a/sysdeps/loongarch/math-use-builtins-ffs.h b/sysdeps/loongarch/math-use-builtins-ffs.h > new file mode 100644 > index 0000000000..a83bb15414 > --- /dev/null > +++ b/sysdeps/loongarch/math-use-builtins-ffs.h > @@ -0,0 +1,2 @@ > +#define USE_FFS_BUILTIN 1 > +#define USE_FFSLL_BUILTIN 1
diff --git a/sysdeps/loongarch/math-use-builtins-ffs.h b/sysdeps/loongarch/math-use-builtins-ffs.h new file mode 100644 index 0000000000..a83bb15414 --- /dev/null +++ b/sysdeps/loongarch/math-use-builtins-ffs.h @@ -0,0 +1,2 @@ +#define USE_FFS_BUILTIN 1 +#define USE_FFSLL_BUILTIN 1
On LoongArch GCC compiles __builtin_ffs{,ll} to basically `(x ? __builtin_ctz (x) : -1) + 1`. Since a hardware ctz instruction is available, this is much better than the table-driven generic implementation. Tested on loongarch64. Signed-off-by: Xi Ruoyao <xry111@xry111.site> --- sysdeps/loongarch/math-use-builtins-ffs.h | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sysdeps/loongarch/math-use-builtins-ffs.h