[PATCH v2 00/10] LoongArch: Use builtins with GCC >= 13
Xiaolin Tang
tangxiaolin@loongson.cn
Wed Nov 23 03:44:54 GMT 2022
Patch 0001-0007:
GCC 13, LoongArch support builtins for {,l,ll}rint, logb,
use these built-ins instead of generic function implementation.
Patch 0008:
GCC 13, LoongArch support ___builtin_scalbn{,f} with -fno-math-errno,
but only "libm" can use -fno-math-errno in GLIBC, and scalbn is in
libc instead of libm because __printf_fp calls it. So inline assembler
of the scalbn functions is a better choice for LoongArch.
Patch 0009: Add LoongArch support for scalb[f].
>From v1 to v2:
Add patch 0010: Add LoongArch support for ilogb[f].
Discuss with Xi Ruoyao<xry111@xry111.site>
Link:
https://sourceware.org/pipermail/libc-alpha/2022-November/143425.html
Xi Ruoyao (1):
LoongArch: Use __builtin_rint{,f} with GCC >= 13
Xiaolin Tang (9):
Use GCC builtins for lrint functions if desired.
LoongArch: Use __builtin_lrint{,f} with GCC >= 13
Use GCC builtins for llrint functions if desired.
LoongArch: Use __builtin_llrint{,f} with GCC >= 13
Use GCC builtins for logb functions if desired.
LoongArch: Use __builtin_logb{,f} with GCC >= 13
LoongArch: Add support for scalbn[f]
LoongArch: Add support for scalb[f]
LoongArch: Add support for ilogb[f]
sysdeps/generic/math-use-builtins-llrint.h | 4 ++
sysdeps/generic/math-use-builtins-logb.h | 4 ++
sysdeps/generic/math-use-builtins-lrint.h | 4 ++
sysdeps/generic/math-use-builtins.h | 3 +
sysdeps/ieee754/dbl-64/s_llrint.c | 18 ++++--
sysdeps/ieee754/dbl-64/s_logb.c | 5 ++
sysdeps/ieee754/dbl-64/s_lrint.c | 18 ++++--
sysdeps/ieee754/float128/float128_private.h | 6 ++
sysdeps/ieee754/flt-32/s_llrintf.c | 18 ++++--
sysdeps/ieee754/flt-32/s_logbf.c | 5 ++
sysdeps/ieee754/flt-32/s_lrintf.c | 18 ++++--
sysdeps/ieee754/ldbl-128/s_llrintl.c | 17 ++++--
sysdeps/ieee754/ldbl-128/s_logbl.c | 6 ++
sysdeps/ieee754/ldbl-128/s_lrintl.c | 17 ++++--
sysdeps/loongarch/fpu/e_ilogb.c | 39 ++++++++++++
sysdeps/loongarch/fpu/e_ilogbf.c | 39 ++++++++++++
sysdeps/loongarch/fpu/e_scalb.c | 60 +++++++++++++++++++
sysdeps/loongarch/fpu/e_scalbf.c | 60 +++++++++++++++++++
.../loongarch/fpu/math-use-builtins-llrint.h | 10 ++++
.../loongarch/fpu/math-use-builtins-logb.h | 10 ++++
.../loongarch/fpu/math-use-builtins-lrint.h | 10 ++++
.../loongarch/fpu/math-use-builtins-rint.h | 9 +++
sysdeps/loongarch/fpu/s_scalbn.c | 29 +++++++++
sysdeps/loongarch/fpu/s_scalbnf.c | 29 +++++++++
24 files changed, 404 insertions(+), 34 deletions(-)
create mode 100644 sysdeps/generic/math-use-builtins-llrint.h
create mode 100644 sysdeps/generic/math-use-builtins-logb.h
create mode 100644 sysdeps/generic/math-use-builtins-lrint.h
create mode 100644 sysdeps/loongarch/fpu/e_ilogb.c
create mode 100644 sysdeps/loongarch/fpu/e_ilogbf.c
create mode 100644 sysdeps/loongarch/fpu/e_scalb.c
create mode 100644 sysdeps/loongarch/fpu/e_scalbf.c
create mode 100644 sysdeps/loongarch/fpu/math-use-builtins-llrint.h
create mode 100644 sysdeps/loongarch/fpu/math-use-builtins-logb.h
create mode 100644 sysdeps/loongarch/fpu/math-use-builtins-lrint.h
create mode 100644 sysdeps/loongarch/fpu/math-use-builtins-rint.h
create mode 100644 sysdeps/loongarch/fpu/s_scalbn.c
create mode 100644 sysdeps/loongarch/fpu/s_scalbnf.c
--
2.31.1
More information about the Libc-alpha
mailing list