[PATCH v7 2/5] LoongArch: Add support for LA32 in sysdeps/loongarch/fpu

caiyinyu caiyinyu@loongson.cn
Tue Mar 24 06:21:44 GMT 2026


LGTM

在 2026/3/23 下午3:28, mengqinggang 写道:
> Move the loongarch64 implementation to sysdeps/loongarch/lp64/fpu.
> ---
>   sysdeps/loongarch/fpu/math-use-builtins-llrint.h |  2 +-
>   sysdeps/loongarch/fpu/math-use-builtins-logb.h   |  2 +-
>   sysdeps/loongarch/fpu/math-use-builtins-lrint.h  |  2 +-
>   sysdeps/loongarch/fpu/math-use-builtins-rint.h   |  2 +-
>   sysdeps/loongarch/fpu/math-use-builtins-sqrt.h   | 10 ++++++++--
>   sysdeps/loongarch/lp64/fpu/Implies               |  1 +
>   sysdeps/loongarch/{ => lp64}/fpu/e_scalb.c       |  0
>   sysdeps/loongarch/{ => lp64}/fpu/e_scalbf.c      |  0
>   sysdeps/loongarch/{ => lp64}/fpu/s_scalbn.c      |  0
>   sysdeps/loongarch/{ => lp64}/fpu/s_scalbnf.c     |  0
>   sysdeps/loongarch/{ => lp64}/fpu/w_ilogb-impl.h  |  0
>   sysdeps/loongarch/{ => lp64}/fpu/w_ilogbf-impl.h |  0
>   12 files changed, 13 insertions(+), 6 deletions(-)
>   create mode 100644 sysdeps/loongarch/lp64/fpu/Implies
>   rename sysdeps/loongarch/{ => lp64}/fpu/e_scalb.c (100%)
>   rename sysdeps/loongarch/{ => lp64}/fpu/e_scalbf.c (100%)
>   rename sysdeps/loongarch/{ => lp64}/fpu/s_scalbn.c (100%)
>   rename sysdeps/loongarch/{ => lp64}/fpu/s_scalbnf.c (100%)
>   rename sysdeps/loongarch/{ => lp64}/fpu/w_ilogb-impl.h (100%)
>   rename sysdeps/loongarch/{ => lp64}/fpu/w_ilogbf-impl.h (100%)
>
> diff --git a/sysdeps/loongarch/fpu/math-use-builtins-llrint.h b/sysdeps/loongarch/fpu/math-use-builtins-llrint.h
> index bee5910b09..82f89d41f9 100644
> --- a/sysdeps/loongarch/fpu/math-use-builtins-llrint.h
> +++ b/sysdeps/loongarch/fpu/math-use-builtins-llrint.h
> @@ -1,4 +1,4 @@
> -#if __GNUC_PREREQ (13, 0)
> +#if __GNUC_PREREQ (13, 0) && __loongarch_grlen == 64
>   # define USE_LLRINT_BUILTIN 1
>   # define USE_LLRINTF_BUILTIN 1
>   #else
> diff --git a/sysdeps/loongarch/fpu/math-use-builtins-logb.h b/sysdeps/loongarch/fpu/math-use-builtins-logb.h
> index b1c3f30dc4..d8ca3d1aa2 100644
> --- a/sysdeps/loongarch/fpu/math-use-builtins-logb.h
> +++ b/sysdeps/loongarch/fpu/math-use-builtins-logb.h
> @@ -1,4 +1,4 @@
> -#if __GNUC_PREREQ (13, 0)
> +#if __GNUC_PREREQ (13, 0) && __loongarch_grlen == 64
>   # define USE_LOGB_BUILTIN 1
>   # define USE_LOGBF_BUILTIN 1
>   #else
> diff --git a/sysdeps/loongarch/fpu/math-use-builtins-lrint.h b/sysdeps/loongarch/fpu/math-use-builtins-lrint.h
> index 7df8aac81f..80345fdf3f 100644
> --- a/sysdeps/loongarch/fpu/math-use-builtins-lrint.h
> +++ b/sysdeps/loongarch/fpu/math-use-builtins-lrint.h
> @@ -1,4 +1,4 @@
> -#if __GNUC_PREREQ (13, 0)
> +#if __GNUC_PREREQ (13, 0) && __loongarch_grlen == 64
>   # define USE_LRINT_BUILTIN 1
>   # define USE_LRINTF_BUILTIN 1
>   #else
> diff --git a/sysdeps/loongarch/fpu/math-use-builtins-rint.h b/sysdeps/loongarch/fpu/math-use-builtins-rint.h
> index cd91482f5f..73ce3e45bc 100644
> --- a/sysdeps/loongarch/fpu/math-use-builtins-rint.h
> +++ b/sysdeps/loongarch/fpu/math-use-builtins-rint.h
> @@ -1,4 +1,4 @@
> -#if __GNUC_PREREQ (13, 0)
> +#if __GNUC_PREREQ (13, 0) && __loongarch_grlen == 64
>   #  define USE_RINT_BUILTIN 1
>   #  define USE_RINTF_BUILTIN 1
>   #else
> diff --git a/sysdeps/loongarch/fpu/math-use-builtins-sqrt.h b/sysdeps/loongarch/fpu/math-use-builtins-sqrt.h
> index e94c915ba6..f031bd7536 100644
> --- a/sysdeps/loongarch/fpu/math-use-builtins-sqrt.h
> +++ b/sysdeps/loongarch/fpu/math-use-builtins-sqrt.h
> @@ -1,4 +1,10 @@
> -#define USE_SQRT_BUILTIN 1
> -#define USE_SQRTF_BUILTIN 1
> +#if __loongarch_grlen == 64
> +  #define USE_SQRT_BUILTIN 1
> +  #define USE_SQRTF_BUILTIN 1
> +#else
> +  #define USE_SQRT_BUILTIN 0
> +  #define USE_SQRTF_BUILTIN 0
> +#endif
> +
>   #define USE_SQRTL_BUILTIN 0
>   #define USE_SQRTF128_BUILTIN 0
> diff --git a/sysdeps/loongarch/lp64/fpu/Implies b/sysdeps/loongarch/lp64/fpu/Implies
> new file mode 100644
> index 0000000000..fccda41bd0
> --- /dev/null
> +++ b/sysdeps/loongarch/lp64/fpu/Implies
> @@ -0,0 +1 @@
> +loongarch/lp64/fpu
> diff --git a/sysdeps/loongarch/fpu/e_scalb.c b/sysdeps/loongarch/lp64/fpu/e_scalb.c
> similarity index 100%
> rename from sysdeps/loongarch/fpu/e_scalb.c
> rename to sysdeps/loongarch/lp64/fpu/e_scalb.c
> diff --git a/sysdeps/loongarch/fpu/e_scalbf.c b/sysdeps/loongarch/lp64/fpu/e_scalbf.c
> similarity index 100%
> rename from sysdeps/loongarch/fpu/e_scalbf.c
> rename to sysdeps/loongarch/lp64/fpu/e_scalbf.c
> diff --git a/sysdeps/loongarch/fpu/s_scalbn.c b/sysdeps/loongarch/lp64/fpu/s_scalbn.c
> similarity index 100%
> rename from sysdeps/loongarch/fpu/s_scalbn.c
> rename to sysdeps/loongarch/lp64/fpu/s_scalbn.c
> diff --git a/sysdeps/loongarch/fpu/s_scalbnf.c b/sysdeps/loongarch/lp64/fpu/s_scalbnf.c
> similarity index 100%
> rename from sysdeps/loongarch/fpu/s_scalbnf.c
> rename to sysdeps/loongarch/lp64/fpu/s_scalbnf.c
> diff --git a/sysdeps/loongarch/fpu/w_ilogb-impl.h b/sysdeps/loongarch/lp64/fpu/w_ilogb-impl.h
> similarity index 100%
> rename from sysdeps/loongarch/fpu/w_ilogb-impl.h
> rename to sysdeps/loongarch/lp64/fpu/w_ilogb-impl.h
> diff --git a/sysdeps/loongarch/fpu/w_ilogbf-impl.h b/sysdeps/loongarch/lp64/fpu/w_ilogbf-impl.h
> similarity index 100%
> rename from sysdeps/loongarch/fpu/w_ilogbf-impl.h
> rename to sysdeps/loongarch/lp64/fpu/w_ilogbf-impl.h



More information about the Libc-alpha mailing list