introduce sysdep header math-use-builtins.h to replace aarch64 impementations with corresponding generic ones - newly inroduced generic sqrt{,f}, fma{,f} - existing floor{,f}, nearbyint{,f}, rint{,f}, round{,f}, trunc{,f} - Note that generic copysign was already enabled (via generic math-use-builtins.h) now thru sysdep header This is supposed to be a non functional change Passes build-many for aarch64-linux-gnu --- sysdeps/aarch64/fpu/e_sqrt.c | 27 ---------- sysdeps/aarch64/fpu/e_sqrtf.c | 27 ---------- sysdeps/aarch64/fpu/math-use-builtins.h | 71 +++++++++++++++++++++++++ sysdeps/aarch64/fpu/s_floor.c | 29 ---------- sysdeps/aarch64/fpu/s_floorf.c | 29 ---------- sysdeps/aarch64/fpu/s_fma.c | 28 ---------- sysdeps/aarch64/fpu/s_fmaf.c | 28 ---------- sysdeps/aarch64/fpu/s_nearbyint.c | 28 ---------- sysdeps/aarch64/fpu/s_nearbyintf.c | 28 ---------- sysdeps/aarch64/fpu/s_rint.c | 29 ---------- sysdeps/aarch64/fpu/s_rintf.c | 29 ---------- sysdeps/aarch64/fpu/s_round.c | 29 ---------- sysdeps/aarch64/fpu/s_roundf.c | 29 ---------- sysdeps/aarch64/fpu/s_trunc.c | 29 ---------- sysdeps/aarch64/fpu/s_truncf.c | 29 ---------- 15 files changed, 71 insertions(+), 398 deletions(-) delete mode 100644 sysdeps/aarch64/fpu/e_sqrt.c delete mode 100644 sysdeps/aarch64/fpu/e_sqrtf.c create mode 100644 sysdeps/aarch64/fpu/math-use-builtins.h delete mode 100644 sysdeps/aarch64/fpu/s_floor.c delete mode 100644 sysdeps/aarch64/fpu/s_floorf.c delete mode 100644 sysdeps/aarch64/fpu/s_fma.c delete mode 100644 sysdeps/aarch64/fpu/s_fmaf.c delete mode 100644 sysdeps/aarch64/fpu/s_nearbyint.c delete mode 100644 sysdeps/aarch64/fpu/s_nearbyintf.c delete mode 100644 sysdeps/aarch64/fpu/s_rint.c delete mode 100644 sysdeps/aarch64/fpu/s_rintf.c delete mode 100644 sysdeps/aarch64/fpu/s_round.c delete mode 100644 sysdeps/aarch64/fpu/s_roundf.c delete mode 100644 sysdeps/aarch64/fpu/s_trunc.c delete mode 100644 sysdeps/aarch64/fpu/s_truncf.c diff --git a/sysdeps/aarch64/fpu/e_sqrt.c b/sysdeps/aarch64/fpu/e_sqrt.c deleted file mode 100644 index abb67ef7b061..000000000000 --- a/sysdeps/aarch64/fpu/e_sqrt.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Square root of floating point number. - Copyright (C) 2015-2020 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_private.h> -#include <libm-alias-finite.h> - -double -__ieee754_sqrt (double d) -{ - return __builtin_sqrt (d); -} -libm_alias_finite (__ieee754_sqrt, __sqrt) diff --git a/sysdeps/aarch64/fpu/e_sqrtf.c b/sysdeps/aarch64/fpu/e_sqrtf.c deleted file mode 100644 index 13008a4f45d6..000000000000 --- a/sysdeps/aarch64/fpu/e_sqrtf.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Single-precision floating point square root. - Copyright (C) 2015-2020 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_private.h> -#include <libm-alias-finite.h> - -float -__ieee754_sqrtf (float s) -{ - return __builtin_sqrtf (s); -} -libm_alias_finite (__ieee754_sqrtf, __sqrtf) diff --git a/sysdeps/aarch64/fpu/math-use-builtins.h b/sysdeps/aarch64/fpu/math-use-builtins.h new file mode 100644 index 000000000000..50a1ba0db5ea --- /dev/null +++ b/sysdeps/aarch64/fpu/math-use-builtins.h @@ -0,0 +1,71 @@ +/* Using math gcc builtins instead of generic implementation. aarch64 version. + Copyright (C) 2020 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_USE_BUILTINS_H +#define MATH_USE_BUILTINS_H 1 + +#include <features.h> /* For __GNUC_PREREQ. */ + +/* Define these macros to 1 to use __builtin_xyz instead of the + generic implementation. */ +#define USE_NEARBYINT_BUILTIN 1 +#define USE_NEARBYINTF_BUILTIN 1 +#define USE_NEARBYINTL_BUILTIN 0 +#define USE_NEARBYINTF128_BUILTIN 0 + +#define USE_RINT_BUILTIN 1 +#define USE_RINTF_BUILTIN 1 +#define USE_RINTL_BUILTIN 0 +#define USE_RINTF128_BUILTIN 0 + +#define USE_FLOOR_BUILTIN 1 +#define USE_FLOORF_BUILTIN 1 +#define USE_FLOORL_BUILTIN 0 +#define USE_FLOORF128_BUILTIN 0 + +#define USE_CEIL_BUILTIN 1 +#define USE_CEILF_BUILTIN 1 +#define USE_CEILL_BUILTIN 0 +#define USE_CEILF128_BUILTIN 0 + +#define USE_TRUNC_BUILTIN 1 +#define USE_TRUNCF_BUILTIN 1 +#define USE_TRUNCL_BUILTIN 0 +#define USE_TRUNCF128_BUILTIN 0 + +#define USE_ROUND_BUILTIN 1 +#define USE_ROUNDF_BUILTIN 1 +#define USE_ROUNDL_BUILTIN 0 +#define USE_ROUNDF128_BUILTIN 0 + +#define USE_COPYSIGNL_BUILTIN 1 +#if __GNUC_PREREQ (7, 0) +# define USE_COPYSIGNF128_BUILTIN 1 +#else +# define USE_COPYSIGNF128_BUILTIN 0 +#endif + +#define USE_SQRT_BUILTIN 1 +#define USE_SQRTF_BUILTIN 1 + +#define USE_FMA_BUILTIN 1 +#define USE_FMAF_BUILTIN 1 +#define USE_FMAL_BUILTIN 0 +#define USE_FMAF128_BUILTIN 0 + +#endif diff --git a/sysdeps/aarch64/fpu/s_floor.c b/sysdeps/aarch64/fpu/s_floor.c deleted file mode 100644 index d7d3e9336a6e..000000000000 --- a/sysdeps/aarch64/fpu/s_floor.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 NO_MATH_REDIRECT -#include <math.h> -#include <libm-alias-double.h> - -double -__floor (double x) -{ - return __builtin_floor (x); -} - -libm_alias_double (__floor, floor) diff --git a/sysdeps/aarch64/fpu/s_floorf.c b/sysdeps/aarch64/fpu/s_floorf.c deleted file mode 100644 index 625ff4375702..000000000000 --- a/sysdeps/aarch64/fpu/s_floorf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 NO_MATH_REDIRECT -#include <math.h> -#include <libm-alias-float.h> - -float -__floorf (float x) -{ - return __builtin_floorf (x); -} - -libm_alias_float (__floor, floor) diff --git a/sysdeps/aarch64/fpu/s_fma.c b/sysdeps/aarch64/fpu/s_fma.c deleted file mode 100644 index 48bb40482dc9..000000000000 --- a/sysdeps/aarch64/fpu/s_fma.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 1996-2020 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 <libm-alias-double.h> - -double -__fma (double x, double y, double z) -{ - return __builtin_fma (x, y, z); -} - -libm_alias_double (__fma, fma) diff --git a/sysdeps/aarch64/fpu/s_fmaf.c b/sysdeps/aarch64/fpu/s_fmaf.c deleted file mode 100644 index 544f32e27aec..000000000000 --- a/sysdeps/aarch64/fpu/s_fmaf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 2011-2020 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 <libm-alias-float.h> - -float -__fmaf (float x, float y, float z) -{ - return __builtin_fmaf (x, y, z); -} - -libm_alias_float (__fma, fma) diff --git a/sysdeps/aarch64/fpu/s_nearbyint.c b/sysdeps/aarch64/fpu/s_nearbyint.c deleted file mode 100644 index 59a57dd39ba1..000000000000 --- a/sysdeps/aarch64/fpu/s_nearbyint.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 2011-2020 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 <libm-alias-double.h> - -double -__nearbyint (double x) -{ - return __builtin_nearbyint (x); -} - -libm_alias_double (__nearbyint, nearbyint) diff --git a/sysdeps/aarch64/fpu/s_nearbyintf.c b/sysdeps/aarch64/fpu/s_nearbyintf.c deleted file mode 100644 index f52968ae2bbd..000000000000 --- a/sysdeps/aarch64/fpu/s_nearbyintf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 2011-2020 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 <libm-alias-float.h> - -float -__nearbyintf (float x) -{ - return __builtin_nearbyintf (x); -} - -libm_alias_float (__nearbyint, nearbyint) diff --git a/sysdeps/aarch64/fpu/s_rint.c b/sysdeps/aarch64/fpu/s_rint.c deleted file mode 100644 index bdd757167e0c..000000000000 --- a/sysdeps/aarch64/fpu/s_rint.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 NO_MATH_REDIRECT -#include <math.h> -#include <libm-alias-double.h> - -double -__rint (double x) -{ - return __builtin_rint (x); -} - -libm_alias_double (__rint, rint) diff --git a/sysdeps/aarch64/fpu/s_rintf.c b/sysdeps/aarch64/fpu/s_rintf.c deleted file mode 100644 index 8cf7c63d6dda..000000000000 --- a/sysdeps/aarch64/fpu/s_rintf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 NO_MATH_REDIRECT -#include <math.h> -#include <libm-alias-float.h> - -float -__rintf (float x) -{ - return __builtin_rintf (x); -} - -libm_alias_float (__rint, rint) diff --git a/sysdeps/aarch64/fpu/s_round.c b/sysdeps/aarch64/fpu/s_round.c deleted file mode 100644 index d2fd5f34117a..000000000000 --- a/sysdeps/aarch64/fpu/s_round.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 NO_MATH_REDIRECT -#include <math.h> -#include <libm-alias-double.h> - -double -__round (double x) -{ - return __builtin_round (x); -} - -libm_alias_double (__round, round) diff --git a/sysdeps/aarch64/fpu/s_roundf.c b/sysdeps/aarch64/fpu/s_roundf.c deleted file mode 100644 index e51214e86cd2..000000000000 --- a/sysdeps/aarch64/fpu/s_roundf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 NO_MATH_REDIRECT -#include <math.h> -#include <libm-alias-float.h> - -float -__roundf (float x) -{ - return __builtin_roundf (x); -} - -libm_alias_float (__round, round) diff --git a/sysdeps/aarch64/fpu/s_trunc.c b/sysdeps/aarch64/fpu/s_trunc.c deleted file mode 100644 index bac23a5e269d..000000000000 --- a/sysdeps/aarch64/fpu/s_trunc.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 NO_MATH_REDIRECT -#include <math.h> -#include <libm-alias-double.h> - -double -__trunc (double x) -{ - return __builtin_trunc (x); -} - -libm_alias_double (__trunc, trunc) diff --git a/sysdeps/aarch64/fpu/s_truncf.c b/sysdeps/aarch64/fpu/s_truncf.c deleted file mode 100644 index 6a025c084a5a..000000000000 --- a/sysdeps/aarch64/fpu/s_truncf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 NO_MATH_REDIRECT -#include <math.h> -#include <libm-alias-float.h> - -float -__truncf (float x) -{ - return __builtin_truncf (x); -} - -libm_alias_float (__trunc, trunc) -- 2.20.1 _______________________________________________ linux-snps-arc mailing list linux-snps-arc@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-snps-arc