2019-12-11 14:09:18 +00:00
|
|
|
/* Using math gcc builtins instead of generic implementation. Generic version.
|
2024-01-01 18:12:26 +00:00
|
|
|
Copyright (C) 2019-2024 Free Software Foundation, Inc.
|
2019-12-11 14:09:18 +00:00
|
|
|
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
|
|
|
|
|
2019-12-11 14:09:24 +00:00
|
|
|
#include <features.h> /* For __GNUC_PREREQ. */
|
|
|
|
|
2019-12-11 14:09:18 +00:00
|
|
|
/* Define these macros to 1 to use __builtin_xyz instead of the
|
|
|
|
generic implementation. */
|
|
|
|
|
2020-06-04 14:32:17 +00:00
|
|
|
#include <math-use-builtins-nearbyint.h>
|
|
|
|
#include <math-use-builtins-rint.h>
|
|
|
|
#include <math-use-builtins-floor.h>
|
|
|
|
#include <math-use-builtins-ceil.h>
|
|
|
|
#include <math-use-builtins-trunc.h>
|
|
|
|
#include <math-use-builtins-round.h>
|
2021-05-24 01:43:12 +00:00
|
|
|
#include <math-use-builtins-roundeven.h>
|
2020-06-04 14:32:17 +00:00
|
|
|
#include <math-use-builtins-copysign.h>
|
|
|
|
#include <math-use-builtins-sqrt.h>
|
|
|
|
#include <math-use-builtins-fma.h>
|
2021-12-01 13:37:44 +00:00
|
|
|
#include <math-use-builtins-fmax.h>
|
2021-12-01 13:44:58 +00:00
|
|
|
#include <math-use-builtins-fmin.h>
|
math: Add math-use-builtins-fabs (BZ#29027)
Both float, double, and _Float128 are assumed to be supported
(float and double already only uses builtins). Only long double
is parametrized due GCC bug 29253 which prevents its usage on
powerpc.
It allows to remove i686, ia64, x86_64, powerpc, and sparc arch
specific implementation.
On ia64 it also fixes the sNAN handling:
math/test-float64x-fabs
math/test-ldouble-fabs
Checked on x86_64-linux-gnu, i686-linux-gnu, powerpc-linux-gnu,
powerpc64-linux-gnu, sparc64-linux-gnu, and ia64-linux-gnu.
2022-04-01 13:19:57 +00:00
|
|
|
#include <math-use-builtins-fabs.h>
|
2022-11-23 03:44:56 +00:00
|
|
|
#include <math-use-builtins-lrint.h>
|
2022-11-23 03:44:58 +00:00
|
|
|
#include <math-use-builtins-llrint.h>
|
2022-11-23 03:45:00 +00:00
|
|
|
#include <math-use-builtins-logb.h>
|
2020-06-04 14:32:17 +00:00
|
|
|
|
|
|
|
#endif /* MATH_USE_BUILTINS_H */
|