diff options
Diffstat (limited to 'sysdeps')
64 files changed, 994 insertions, 1 deletions
diff --git a/sysdeps/generic/math-narrow-alias.h b/sysdeps/generic/math-narrow-alias.h new file mode 100644 index 0000000000..44c4ab6f06 --- /dev/null +++ b/sysdeps/generic/math-narrow-alias.h @@ -0,0 +1,135 @@ +/* Alias macros for functions returning a narrower type. + Copyright (C) 2018-2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#ifndef _MATH_NARROW_ALIAS_H +#define _MATH_NARROW_ALIAS_H 1 + +#include <bits/floatn.h> +#include <bits/long-double.h> + +/* The following macros declare aliases for a narrowing function. The + sole argument is the base name of a family of functions, such as + "add". If any platform changes long double format after the + introduction of narrowing functions, in a way requiring symbol + versioning compatibility, additional variants of these macros will + be needed. */ + +#define libm_alias_float_double_main(func) \ + weak_alias (__f ## func, f ## func) \ + weak_alias (__f ## func, f32 ## func ## f64) \ + weak_alias (__f ## func, f32 ## func ## f32x) + +#ifdef NO_LONG_DOUBLE +# define libm_alias_float_double(func) \ + libm_alias_float_double_main (func) \ + weak_alias (__f ## func, f ## func ## l) +#else +# define libm_alias_float_double(func) \ + libm_alias_float_double_main (func) +#endif + +#define libm_alias_float32x_float64_main(func) \ + weak_alias (__f32x ## func ## f64, f32x ## func ## f64) + +#ifdef NO_LONG_DOUBLE +# define libm_alias_float32x_float64(func) \ + libm_alias_float32x_float64_main (func) \ + weak_alias (__f32x ## func ## f64, d ## func ## l) +#elif defined __LONG_DOUBLE_MATH_OPTIONAL +# define libm_alias_float32x_float64(func) \ + libm_alias_float32x_float64_main (func) \ + weak_alias (__f32x ## func ## f64, __nldbl_d ## func ## l) +#else +# define libm_alias_float32x_float64(func) \ + libm_alias_float32x_float64_main (func) +#endif + +#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128 +# define libm_alias_float_ldouble_f128(func) \ + weak_alias (__f ## func ## l, f32 ## func ## f128) +# define libm_alias_double_ldouble_f128(func) \ + weak_alias (__d ## func ## l, f32x ## func ## f128) \ + weak_alias (__d ## func ## l, f64 ## func ## f128) +#else +# define libm_alias_float_ldouble_f128(func) +# define libm_alias_double_ldouble_f128(func) +#endif + +#if __HAVE_FLOAT64X_LONG_DOUBLE +# define libm_alias_float_ldouble_f64x(func) \ + weak_alias (__f ## func ## l, f32 ## func ## f64x) +# define libm_alias_double_ldouble_f64x(func) \ + weak_alias (__d ## func ## l, f32x ## func ## f64x) \ + weak_alias (__d ## func ## l, f64 ## func ## f64x) +#else +# define libm_alias_float_ldouble_f64x(func) +# define libm_alias_double_ldouble_f64x(func) +#endif + +#define libm_alias_float_ldouble(func) \ + weak_alias (__f ## func ## l, f ## func ## l) \ + libm_alias_float_ldouble_f128 (func) \ + libm_alias_float_ldouble_f64x (func) + +#define libm_alias_double_ldouble(func) \ + weak_alias (__d ## func ## l, d ## func ## l) \ + libm_alias_double_ldouble_f128 (func) \ + libm_alias_double_ldouble_f64x (func) + +#define libm_alias_float64x_float128(func) \ + weak_alias (__f64x ## func ## f128, f64x ## func ## f128) + +#define libm_alias_float32_float128_main(func) \ + weak_alias (__f32 ## func ## f128, f32 ## func ## f128) + +#define libm_alias_float64_float128_main(func) \ + weak_alias (__f64 ## func ## f128, f64 ## func ## f128) \ + weak_alias (__f64 ## func ## f128, f32x ## func ## f128) + +#include <math-narrow-alias-float128.h> + +/* The following macros declare narrowing-named aliases for a + non-narrowing function. */ + +#define libm_alias_double_narrow_main(from, to) \ + weak_alias (from, f32x ## to ## f64) + +#ifdef NO_LONG_DOUBLE +# define libm_alias_double_narrow(from, to) \ + libm_alias_double_narrow_main (from, to) \ + weak_alias (from, d ## to ## l) +#else +# define libm_alias_double_narrow(from, to) \ + libm_alias_double_narrow_main (from, to) +#endif + +#if __HAVE_FLOAT64X_LONG_DOUBLE && __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128 +# define libm_alias_ldouble_narrow(from, to) \ + weak_alias (from ## l, f64x ## to ## f128) +#else +# define libm_alias_ldouble_narrow(from, to) +#endif + +#if __HAVE_DISTINCT_FLOAT128 && __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE +# define libm_alias_float128_narrow(from, to) \ + weak_alias (from ## f128, f64x ## to ## f128) +#else +# define libm_alias_float128_narrow(from, to) +#endif + +#endif /* math-narrow-alias.h. */ diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h index 7abab18af3..8d2d8362cc 100644 --- a/sysdeps/generic/math-type-macros-double.h +++ b/sysdeps/generic/math-type-macros-double.h @@ -38,6 +38,11 @@ # define declare_mgen_alias_r(from, to) libm_alias_double_r (from, to, _r) #endif +#ifndef declare_mgen_alias_narrow +# define declare_mgen_alias_narrow(from, to) \ + libm_alias_double_narrow (from, to) +#endif + /* Supply the generic macros. */ #include <math-type-macros.h> diff --git a/sysdeps/generic/math-type-macros-float.h b/sysdeps/generic/math-type-macros-float.h index e0a6a51492..fb84d62909 100644 --- a/sysdeps/generic/math-type-macros-float.h +++ b/sysdeps/generic/math-type-macros-float.h @@ -41,6 +41,10 @@ # define declare_mgen_alias_r(from, to) libm_alias_float_r (from, to, _r) #endif +#ifndef declare_mgen_alias_narrow +# define declare_mgen_alias_narrow(from, to) +#endif + /* Supply the generic macros. */ #include <math-type-macros.h> diff --git a/sysdeps/generic/math-type-macros-float128.h b/sysdeps/generic/math-type-macros-float128.h index 5cdce15a4e..5c190606f5 100644 --- a/sysdeps/generic/math-type-macros-float128.h +++ b/sysdeps/generic/math-type-macros-float128.h @@ -40,6 +40,11 @@ # define declare_mgen_alias_r(from, to) libm_alias_float128_r (from, to, _r) #endif +#ifndef declare_mgen_alias_narrow +# define declare_mgen_alias_narrow(from, to) \ + libm_alias_float128_narrow (from, to) +#endif + /* Supply the generic macros. */ #include <math-type-macros.h> diff --git a/sysdeps/generic/math-type-macros-ldouble.h b/sysdeps/generic/math-type-macros-ldouble.h index 2372195ef1..a2f282500e 100644 --- a/sysdeps/generic/math-type-macros-ldouble.h +++ b/sysdeps/generic/math-type-macros-ldouble.h @@ -38,6 +38,11 @@ # define declare_mgen_alias_r(from, to) libm_alias_ldouble_r (from, to, _r) #endif +#ifndef declare_mgen_alias_narrow +# define declare_mgen_alias_narrow(from, to) \ + libm_alias_ldouble_narrow (from, to) +#endif + /* Supply the generic macros. */ #include <math-type-macros.h> diff --git a/sysdeps/generic/math-type-macros.h b/sysdeps/generic/math-type-macros.h index 007b14449d..188e39bc1f 100644 --- a/sysdeps/generic/math-type-macros.h +++ b/sysdeps/generic/math-type-macros.h @@ -42,6 +42,10 @@ This exposes the appropriate symbol(s) for a function f_r of type FLOAT. + declare_mgen_alias_narrow(from,to) + This exposes the appropriate symbol(s) for narrowing aliases of a + function f of type FLOAT. + SET_NAN_PAYLOAD(flt, mant) Set the NaN payload bits of the variable FLT of type FLOAT to the mantissa MANT. */ @@ -70,6 +74,9 @@ #ifndef declare_mgen_alias_r # error "declare_mgen_alias_r must be defined." #endif +#ifndef declare_mgen_alias_narrow +# error "declare_mgen_alias_narrow must be defined." +#endif #ifndef SET_NAN_PAYLOAD # error "SET_NAN_PAYLOAD must be defined." #endif diff --git a/sysdeps/i386/fpu/w_sqrt.c b/sysdeps/i386/fpu/w_sqrt.c index 8bef04e68a..644c7c870c 100644 --- a/sysdeps/i386/fpu/w_sqrt.c +++ b/sysdeps/i386/fpu/w_sqrt.c @@ -2,7 +2,9 @@ most internal uses in glibc, but not for sqrt itself. */ #define NO_MATH_REDIRECT #define __ieee754_sqrt __avoid_ieee754_sqrt +#define f32xsqrtf64 __hide_f32xsqrtf64 #include <math.h> +#undef f32xsqrtf64 #include <math_private.h> #undef __ieee754_sqrt extern double __ieee754_sqrt (double); diff --git a/sysdeps/i386/fpu/w_sqrt_compat.c b/sysdeps/i386/fpu/w_sqrt_compat.c index dd485f4b88..f5d3cf91d1 100644 --- a/sysdeps/i386/fpu/w_sqrt_compat.c +++ b/sysdeps/i386/fpu/w_sqrt_compat.c @@ -2,7 +2,9 @@ most internal uses in glibc, but not for sqrt itself. */ #define NO_MATH_REDIRECT #define __ieee754_sqrt __avoid_ieee754_sqrt +#define f32xsqrtf64 __hide_f32xsqrtf64 #include <math.h> +#undef f32xsqrtf64 #include <math_private.h> #undef __ieee754_sqrt extern double __ieee754_sqrt (double); diff --git a/sysdeps/ia64/fpu/e_sqrt.S b/sysdeps/ia64/fpu/e_sqrt.S index 750183772b..3b9c17059e 100644 --- a/sysdeps/ia64/fpu/e_sqrt.S +++ b/sysdeps/ia64/fpu/e_sqrt.S @@ -252,6 +252,7 @@ GLOBAL_IEEE754_ENTRY(sqrt) // END DOUBLE PRECISION MINIMUM LATENCY SQUARE ROOT ALGORITHM GLOBAL_IEEE754_END(sqrt) libm_alias_double_other (__sqrt, sqrt) +libm_alias_double_narrow (__sqrt, sqrt) // Stack operations when calling error support. // (1) (2) (3) (call) (4) diff --git a/sysdeps/ia64/fpu/libm-symbols.h b/sysdeps/ia64/fpu/libm-symbols.h index 4a551c9f17..56503cfe4e 100644 --- a/sysdeps/ia64/fpu/libm-symbols.h +++ b/sysdeps/ia64/fpu/libm-symbols.h @@ -5,6 +5,7 @@ # include <libm-alias-float.h> # include <libm-alias-double.h> # include <libm-alias-ldouble.h> +# include <math-narrow-alias.h> /* Support for compatible assembler handling. */ diff --git a/sysdeps/ieee754/dbl-64/s_f32xsqrtf64.c b/sysdeps/ieee754/dbl-64/s_f32xsqrtf64.c new file mode 100644 index 0000000000..9af76a25b0 --- /dev/null +++ b/sysdeps/ieee754/dbl-64/s_f32xsqrtf64.c @@ -0,0 +1 @@ +/* Defined as an alias of sqrt. */ diff --git a/sysdeps/ieee754/dbl-64/s_fsqrt.c b/sysdeps/ieee754/dbl-64/s_fsqrt.c new file mode 100644 index 0000000000..0354ba9fbf --- /dev/null +++ b/sysdeps/ieee754/dbl-64/s_fsqrt.c @@ -0,0 +1,34 @@ +/* Square root of double value, narrowing the result to float. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define f32sqrtf64 __hide_f32sqrtf64 +#define f32sqrtf32x __hide_f32sqrtf32x +#define fsqrtl __hide_fsqrtl +#include <math.h> +#undef f32sqrtf64 +#undef f32sqrtf32x +#undef fsqrtl + +#include <math-narrow.h> + +float +__fsqrt (double x) +{ + NARROW_SQRT_ROUND_TO_ODD (x, float, union ieee754_double, , mantissa1); +} +libm_alias_float_double (sqrt) diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h index b6b6d3d5fd..13d1d63baf 100644 --- a/sysdeps/ieee754/float128/float128_private.h +++ b/sysdeps/ieee754/float128/float128_private.h @@ -138,6 +138,9 @@ #define libm_alias_float_ldouble(func) libm_alias_float32_float128 (func) #undef libm_alias_double_ldouble #define libm_alias_double_ldouble(func) libm_alias_float64_float128 (func) +#undef libm_alias_ldouble_narrow +#define libm_alias_ldouble_narrow(from, to) \ + libm_alias_float128_narrow (from, to) #include <math-use-builtins.h> #undef USE_NEARBYINTL_BUILTIN @@ -284,6 +287,8 @@ #define __ddivl __f64divf128 #define __fmull __f32mulf128 #define __dmull __f64mulf128 +#define __fsqrtl __f32sqrtf128 +#define __dsqrtl __f64sqrtf128 #define __fsubl __f32subf128 #define __dsubl __f64subf128 diff --git a/sysdeps/ieee754/float128/s_f32sqrtf128.c b/sysdeps/ieee754/float128/s_f32sqrtf128.c new file mode 100644 index 0000000000..74e91abd4d --- /dev/null +++ b/sysdeps/ieee754/float128/s_f32sqrtf128.c @@ -0,0 +1,6 @@ +#define f32sqrtf64x __hide_f32sqrtf64x +#define f32sqrtf128 __hide_f32sqrtf128 +#include <float128_private.h> +#undef f32sqrtf64x +#undef f32sqrtf128 +#include "../ldbl-128/s_fsqrtl.c" diff --git a/sysdeps/ieee754/float128/s_f64sqrtf128.c b/sysdeps/ieee754/float128/s_f64sqrtf128.c new file mode 100644 index 0000000000..8373879d42 --- /dev/null +++ b/sysdeps/ieee754/float128/s_f64sqrtf128.c @@ -0,0 +1,10 @@ +#define f32xsqrtf64x __hide_f32xsqrtf64x +#define f32xsqrtf128 __hide_f32xsqrtf128 +#define f64sqrtf64x __hide_f64sqrtf64x +#define f64sqrtf128 __hide_f64sqrtf128 +#include <float128_private.h> +#undef f32xsqrtf64x +#undef f32xsqrtf128 +#undef f64sqrtf64x +#undef f64sqrtf128 +#include "../ldbl-128/s_dsqrtl.c" diff --git a/sysdeps/ieee754/float128/s_f64xsqrtf128.c b/sysdeps/ieee754/float128/s_f64xsqrtf128.c new file mode 100644 index 0000000000..383f92a94e --- /dev/null +++ b/sysdeps/ieee754/float128/s_f64xsqrtf128.c @@ -0,0 +1,2 @@ +#include <float128_private.h> +#include "../ldbl-128/s_f64xsqrtf128.c" diff --git a/sysdeps/ieee754/ldbl-128/s_dsqrtl.c b/sysdeps/ieee754/ldbl-128/s_dsqrtl.c new file mode 100644 index 0000000000..b0d0162467 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_dsqrtl.c @@ -0,0 +1,37 @@ +/* Square root of long double (ldbl-128) value, narrowing the result to double. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define f32xsqrtf64x __hide_f32xsqrtf64x +#define f32xsqrtf128 __hide_f32xsqrtf128 +#define f64sqrtf64x __hide_f64sqrtf64x +#define f64sqrtf128 __hide_f64sqrtf128 +#include <math.h> +#undef f32xsqrtf64x +#undef f32xsqrtf128 +#undef f64sqrtf64x +#undef f64sqrtf128 + +#include <math-narrow.h> + +double +__dsqrtl (_Float128 x) +{ + NARROW_SQRT_ROUND_TO_ODD (x, double, union ieee854_long_double, l, + mantissa3); +} +libm_alias_double_ldouble (sqrt) diff --git a/sysdeps/ieee754/ldbl-128/s_f64xsqrtf128.c b/sysdeps/ieee754/ldbl-128/s_f64xsqrtf128.c new file mode 100644 index 0000000000..2f1898d48c --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_f64xsqrtf128.c @@ -0,0 +1,38 @@ +/* Square root of _Float128 value, converting the result to _Float64x. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <math.h> +#include <math-narrow.h> + +/* math_ldbl.h defines _Float128 to long double for this directory, + but when they are different, this function must be defined with + _Float128 arguments to avoid defining an alias with an incompatible + type. */ +#undef _Float128 + +#if __HAVE_FLOAT64X_LONG_DOUBLE && __HAVE_DISTINCT_FLOAT128 +_Float64x +__f64xsqrtf128 (_Float128 x) +{ + NARROW_SQRT_ROUND_TO_ODD (x, _Float64x, union ieee854_long_double, l, + mantissa3); +} +libm_alias_float64x_float128 (sqrt) +#else +/* Defined as an alias of sqrtl. */ +#endif diff --git a/sysdeps/ieee754/ldbl-128/s_fsqrtl.c b/sysdeps/ieee754/ldbl-128/s_fsqrtl.c new file mode 100644 index 0000000000..95afe7b7ad --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_fsqrtl.c @@ -0,0 +1,33 @@ +/* Square root of long double (ldbl-128) value, narrowing the result to float. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define f32sqrtf64x __hide_f32sqrtf64x +#define f32sqrtf128 __hide_f32sqrtf128 +#include <math.h> +#undef f32sqrtf64x +#undef f32sqrtf128 + +#include <math-narrow.h> + +float +__fsqrtl (_Float128 x) +{ + NARROW_SQRT_ROUND_TO_ODD (x, float, union ieee854_long_double, l, + mantissa3); +} +libm_alias_float_ldouble (sqrt) diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions index 07e6a5b08a..885ffb977f 100644 --- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions @@ -123,6 +123,10 @@ libm { __y1ieee128; __ynieee128; } + GLIBC_2.35 { + __f32sqrtieee128; + __f64sqrtieee128; + } } libc { LDBL_IBM128_VERSION { diff --git a/sysdeps/ieee754/ldbl-128ibm/s_dsqrtl.c b/sysdeps/ieee754/ldbl-128ibm/s_dsqrtl.c new file mode 100644 index 0000000000..786ea7001b --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm/s_dsqrtl.c @@ -0,0 +1,28 @@ +/* Square root of long double (ldbl-128ibm) value, narrowing the result to + double. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <math.h> +#include <math-narrow.h> + +double +__dsqrtl (long double x) +{ + NARROW_SQRT_TRIVIAL (x, double, l); +} +libm_alias_double_ldouble (sqrt) diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fsqrtl.c b/sysdeps/ieee754/ldbl-128ibm/s_fsqrtl.c new file mode 100644 index 0000000000..abfc0d69fe --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm/s_fsqrtl.c @@ -0,0 +1,28 @@ +/* Square root of long double (ldbl-128ibm) value, narrowing the result to + float. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <math.h> +#include <math-narrow.h> + +float +__fsqrtl (long double x) +{ + NARROW_SQRT_TRIVIAL (x, float, l); +} +libm_alias_float_ldouble (sqrt) diff --git a/sysdeps/ieee754/ldbl-96/s_dsqrtl.c b/sysdeps/ieee754/ldbl-96/s_dsqrtl.c new file mode 100644 index 0000000000..8bfc9624c2 --- /dev/null +++ b/sysdeps/ieee754/ldbl-96/s_dsqrtl.c @@ -0,0 +1,33 @@ +/* Square root of long double (ldbl-96) value, narrowing the result to double. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define f32xsqrtf64x __hide_f32xsqrtf64x +#define f64sqrtf64x __hide_f64sqrtf64x +#include <math.h> +#undef f32xsqrtf64x +#undef f64sqrtf64x + +#include <math-narrow.h> + +double +__dsqrtl (long double x) +{ + NARROW_SQRT_ROUND_TO_ODD (x, double, union ieee854_long_double, l, + mantissa1); +} +libm_alias_double_ldouble (sqrt) diff --git a/sysdeps/ieee754/ldbl-96/s_fsqrtl.c b/sysdeps/ieee754/ldbl-96/s_fsqrtl.c new file mode 100644 index 0000000000..026add5d03 --- /dev/null +++ b/sysdeps/ieee754/ldbl-96/s_fsqrtl.c @@ -0,0 +1,31 @@ +/* Square root of long double (ldbl-96) value, narrowing the result to float. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define f32sqrtf64x __hide_f32sqrtf64x +#include <math.h> +#undef f32sqrtf64x + +#include <math-narrow.h> + +float +__fsqrtl (long double x) +{ + NARROW_SQRT_ROUND_TO_ODD (x, float, union ieee854_long_double, l, + mantissa1); +} +libm_alias_float_ldouble (sqrt) diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile index 4e41a27e80..dff53cc0d8 100644 --- a/sysdeps/ieee754/ldbl-opt/Makefile +++ b/sysdeps/ieee754/ldbl-opt/Makefile @@ -45,7 +45,7 @@ libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \ nextup nextdown totalorder totalordermag getpayload \ canonicalize setpayload setpayloadsig llogb fmaxmag fminmag \ roundeven fromfp ufromfp fromfpx ufromfpx fadd dadd \ - fdiv ddiv fmul dmul fsub dsub + fdiv ddiv fmul dmul fsqrt dsqrt fsub dsub libnldbl-routines = $(libnldbl-calls:%=nldbl-%) libnldbl-inhibit-o = $(object-suffixes) libnldbl-static-only-routines = $(libnldbl-routines) @@ -90,6 +90,7 @@ CFLAGS-nldbl-ctanh.c = -fno-builtin-ctanhl CFLAGS-nldbl-dadd.c = -fno-builtin-daddl CFLAGS-nldbl-ddiv.c = -fno-builtin-ddivl CFLAGS-nldbl-dmul.c = -fno-builtin-dmull +CFLAGS-nldbl-dsqrt.c = -fno-builtin-dsqrtl CFLAGS-nldbl-dsub.c = -fno-builtin-dsubl CFLAGS-nldbl-erf.c = -fno-builtin-erfl CFLAGS-nldbl-erfc.c = -fno-builtin-erfcl @@ -113,6 +114,7 @@ CFLAGS-nldbl-fmul.c = -fno-builtin-fmull CFLAGS-nldbl-frexp.c = -fno-builtin-frexpl CFLAGS-nldbl-fromfp.c = -fno-builtin-fromfpl CFLAGS-nldbl-fromfpx.c = -fno-builtin-fromfpxl +CFLAGS-nldbl-fsqrt.c = -fno-builtin-fsqrtl CFLAGS-nldbl-fsub.c = -fno-builtin-fsubl CFLAGS-nldbl-gamma.c = -fno-builtin-gammal CFLAGS-nldbl-getpayload.c = -fno-builtin-getpayloadl diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dsqrt.c b/sysdeps/ieee754/ldbl-opt/nldbl-dsqrt.c new file mode 100644 index 0000000000..1d131f083d --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-dsqrt.c @@ -0,0 +1,28 @@ +/* Compatibility routine for IEEE double as long double for dsqrt. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define dsqrtl __hide_dsqrtl +#include "nldbl-compat.h" +#undef dsqrtl + +double +attribute_hidden +dsqrtl (double x) +{ + return sqrt (x); +} diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fsqrt.c b/sysdeps/ieee754/ldbl-opt/nldbl-fsqrt.c new file mode 100644 index 0000000000..bcdf1aa556 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fsqrt.c @@ -0,0 +1,28 @@ +/* Compatibility routine for IEEE double as long double for fsqrt. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define fsqrtl __hide_fsqrtl +#include "nldbl-compat.h" +#undef fsqrtl + +float +attribute_hidden +fsqrtl (double x) +{ + return fsqrt (x); +} diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c new file mode 100644 index 0000000000..85ea8538a5 --- /dev/null +++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c @@ -0,0 +1,67 @@ +/* Square root of long double (ldbl-128) value, narrowing the result to + double, using soft-fp. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define f32xsqrtf64x __hide_f32xsqrtf64x +#define f32xsqrtf128 __hide_f32xsqrtf128 +#define f64sqrtf64x __hide_f64sqrtf64x +#define f64sqrtf128 __hide_f64sqrtf128 +#include <math.h> +#undef f32xsqrtf64x +#undef f32xsqrtf128 +#undef f64sqrtf64x +#undef f64sqrtf128 + +#include <math-narrow.h> +#include <libc-diag.h> + +/* Some components of the result's significand and exponent are not + set in cases where they are not used in packing, but the compiler + does not see that they are set in all cases where they are used, + resulting in warnings that they may be used uninitialized. */ +DIAG_PUSH_NEEDS_COMMENT; +DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized"); +#include <soft-fp.h> +#include <double.h> +#include <quad.h> + +double +__dsqrtl (_Float128 x) +{ + FP_DECL_EX; + FP_DECL_Q (X); + FP_DECL_Q (R); + FP_DECL_D (RN); + double ret; + + FP_INIT_ROUNDMODE; + FP_UNPACK_Q (X, x); + FP_SQRT_Q (R, X); +#if _FP_W_TYPE_SIZE < 64 + FP_TRUNC_COOKED (D, Q, 2, 4, RN, R); +#else + FP_TRUNC_COOKED (D, Q, 1, 2, RN, R); +#endif + FP_PACK_D (ret, RN); + FP_HANDLE_EXCEPTIONS; + CHECK_NARROW_SQRT (ret, x); + return ret; +} +DIAG_POP_NEEDS_COMMENT; + +libm_alias_double_ldouble (sqrt) diff --git a/sysdeps/ieee754/soft-fp/s_fsqrt.c b/sysdeps/ieee754/soft-fp/s_fsqrt.c new file mode 100644 index 0000000000..b6f7c4e962 --- /dev/null +++ b/sysdeps/ieee754/soft-fp/s_fsqrt.c @@ -0,0 +1,54 @@ +/* Square root of double value, narrowing the result to float, using soft-fp. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define f32sqrtf64 __hide_f32sqrtf64 +#define f32sqrtf32x __hide_f32sqrtf32x +#define fsqrtl __hide_fsqrtl +#include <math.h> +#undef f32sqrtf64 +#undef f32sqrtf32x +#undef fsqrtl + +#include <math-narrow.h> +#include <soft-fp.h> +#include <single.h> +#include <double.h> + +float +__fsqrt (double x) +{ + FP_DECL_EX; + FP_DECL_D (X); + FP_DECL_D (R); + FP_DECL_S (RN); + float ret; + + FP_INIT_ROUNDMODE; + FP_UNPACK_D (X, x); + FP_SQRT_D (R, X); +#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D + FP_TRUNC_COOKED (S, D, 1, 2, RN, R); +#else + FP_TRUNC_COOKED (S, D, 1, 1, RN, R); +#endif + FP_PACK_S (ret, RN); + FP_HANDLE_EXCEPTIONS; + CHECK_NARROW_SQRT (ret, x); + return ret; +} +libm_alias_float_double (sqrt) diff --git a/sysdeps/ieee754/soft-fp/s_fsqrtl.c b/sysdeps/ieee754/soft-fp/s_fsqrtl.c new file mode 100644 index 0000000000..618e734744 --- /dev/null +++ b/sysdeps/ieee754/soft-fp/s_fsqrtl.c @@ -0,0 +1,53 @@ +/* Square root of long double (ldbl-128) value, narrowing the result to + float, using soft-fp. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#define f32sqrtf64x __hide_f32sqrtf64x +#define f32sqrtf128 __hide_f32sqrtf128 +#include <math.h> +#undef f32sqrtf64x +#undef f32sqrtf128 + +#include <math-narrow.h> +#include <soft-fp.h> +#include <single.h> +#include <quad.h> + +float +__fsqrtl (_Float128 x) +{ + FP_DECL_EX; + FP_DECL_Q (X); + FP_DECL_Q (R); + FP_DECL_S (RN); + float ret; + + FP_INIT_ROUNDMODE; + FP_UNPACK_Q (X, x); + FP_SQRT_Q (R, X); +#if _FP_W_TYPE_SIZE < 64 + FP_TRUNC_COOKED (S, Q, 1, 4, RN, R); +#else + FP_TRUNC_COOKED (S, Q, 1, 2, RN, R); +#endif + FP_PACK_S (ret, RN); + FP_HANDLE_EXCEPTIONS; + CHECK_NARROW_SQRT (ret, x); + return ret; +} +libm_alias_float_ldouble (sqrt) diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index bb077b9030..1a107a67dc 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1089,3 +1089,16 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index 513c4343ee..a605aebfc5 100644 --- a/sysdeps/powerpc/fpu/libm-test-ulps +++ b/sysdeps/powerpc/fpu/libm-test-ulps @@ -1623,6 +1623,9 @@ ldouble: 1 Function: "sqrt_downward": ldouble: 1 +Function: "sqrt_ldouble": +double: 1 + Function: "sqrt_towardzero": ldouble: 1 diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h index b03870070f..abab686aa9 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-macros.h @@ -32,6 +32,7 @@ #undef declare_mgen_finite_alias #undef declare_mgen_alias #undef declare_mgen_alias_r +#undef declare_mgen_alias_narrow #define libm_alias_finite(from, to) #define libm_alias_float128_r(from, to, r) @@ -40,6 +41,7 @@ #define declare_mgen_finite_alias(from, to) #define declare_mgen_alias(from, to) #define declare_mgen_alias_r(from, to) +#define declare_mgen_alias_narrow(from, to) /* Likewise, disable hidden symbol support. This is not needed for the implementation objects as the redirects already give diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h index 001cbf70b9..392c66b63d 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h @@ -27,7 +27,9 @@ /* Include the real math.h to avoid optimizations caused by include/math.h (e.x fabsf128 prototype is masked by an inline definition).*/ +#define f64xsqrtf128 __hide_f64xsqrtf128 #include <math/math.h> +#undef f64xsqrtf128 #include <math_private.h> #include <complex.h> #include <first-versions.h> @@ -36,6 +38,7 @@ #include <libm-alias-float128.h> #include <libm-alias-finite.h> +#include <math-narrow-alias.h> /* _F128_IFUNC2(func, from, r) Generate an ifunc symbol func ## r from the symbols @@ -149,6 +152,9 @@ /* scalbnf128 is an alias of ldexpf128. */ #define DECL_ALIAS_s_ldexp(f) MAKE_IFUNCP_R (f,) MAKE_IFUNCP_WRAP_R (wrap_, scalbn,) +/* f64xsqrtf128 is an alias of sqrtf128. */ +#define DECL_ALIAS_w_sqrt(f) MAKE_IFUNCP_R (f,) libm_alias_float128_narrow (__sqrt, sqrt) + /* Declare an IFUNC for a symbol which only exists to provide long double == ieee128 ABI. */ #define DECL_LDOUBLE_ALIAS(func, RTYPE, ARGS) \ diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 5362c24e4c..74f203575f 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1054,3 +1054,16 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 650d10ec8e..e3c619e77a 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1111,6 +1111,19 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist index 4338563657..cedb2ffcc4 100644 --- a/sysdeps/unix/sysv/linux/arc/libm.abilist +++ b/sysdeps/unix/sysv/linux/arc/libm.abilist @@ -697,3 +697,9 @@ GLIBC_2.32 ynf32 F GLIBC_2.32 ynf32x F GLIBC_2.32 ynf64 F GLIBC_2.32 ynl F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index 6914b58d76..97f328dbbd 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -471,6 +471,12 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index 6914b58d76..97f328dbbd 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -471,6 +471,12 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist index 88cdf00342..88761113e6 100644 --- a/sysdeps/unix/sysv/linux/csky/libm.abilist +++ b/sysdeps/unix/sysv/linux/csky/libm.abilist @@ -763,3 +763,9 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 6ac2295b05..c32ff03983 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -782,4 +782,10 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 335b5e7aa2..2a2b290dc9 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1096,3 +1096,16 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index ec82b83e6f..47511731f8 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -1026,3 +1026,16 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 6914b58d76..97f328dbbd 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -471,6 +471,12 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index c60fdc6298..6925a90820 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -822,3 +822,9 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index adea0fe4c0..65ade6d272 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -783,3 +783,9 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index adea0fe4c0..65ade6d272 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -783,3 +783,9 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 272969a26f..f53f8d86c5 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -782,4 +782,10 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index dd0dc6689c..1abb41514c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1054,3 +1054,16 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 4941deefa6..8cac2ab005 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -783,3 +783,9 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index fc2d142bd5..6c70bd6de3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -828,6 +828,12 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index e6feaf7ec7..dd7f2c30c9 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -827,6 +827,12 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 972c9bc597..aac3ff683f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -821,6 +821,12 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 8266bc32f4..7fe920d4d4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1214,3 +1214,18 @@ GLIBC_2.32 __y0ieee128 F GLIBC_2.32 __y1ieee128 F GLIBC_2.32 __ynieee128 F GLIBC_2.32 exp10f F +GLIBC_2.35 __f32sqrtieee128 F +GLIBC_2.35 __f64sqrtieee128 F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist index c701b07a9a..a8638faa6f 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist @@ -938,3 +938,16 @@ GLIBC_2.33 ynf32x F GLIBC_2.33 ynf64 F GLIBC_2.33 ynf64x F GLIBC_2.33 ynl F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist index 90d9073188..dc682a7c52 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist @@ -1035,3 +1035,16 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 321810d5a4..5d2abaa2db 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1055,6 +1055,19 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 451a860a83..f41c9f7a29 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1055,6 +1055,19 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index a5fb514eae..6a379eced4 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -782,4 +782,10 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index a5fb514eae..6a379eced4 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -782,4 +782,10 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index d81e8a726b..e06572a3f9 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1062,6 +1062,19 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 3d12376d33..6d1e4ae31a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1054,3 +1054,16 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index b6a088ca64..7185df2a42 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1087,3 +1087,16 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index dfb5a7fa79..9b29d72d2e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1087,3 +1087,16 @@ GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F GLIBC_2.32 exp10f F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F |