mirror of git://sourceware.org/git/glibc.git
Make dbl-64 atan and tan into weak aliases.
This patch converts the dbl-64 implementations of atan and tan into weak aliases of __atan and __tan, in preparation for making them use libm_alias_double. Consequent changes are made to the x86_64 multiarch versions wrapping round them (with the dbl-64 functions, like other such functions, being made not to define their aliases at all if __atan or __tan are defined as macros by an including file). Tested for x86_64, and with build-many-glibcs.py. * sysdeps/ieee754/dbl-64/s_atan.c (atan): Rename to __atan and define as weak alias of __atan. Do not define any aliases if [__atan]. [NO_LONG_DOUBLE] (__atanl): Define as strong alias of __atan. [NO_LONG_DOUBLE] (atanl): Define as weak alias of __atanl. * sysdeps/ieee754/dbl-64/s_tan.c (tan): Rename to __tan and define as weak alias of __tan. Do not define any aliases if [__tan]. [NO_LONG_DOUBLE] (__tanl): Define as strong alias of __tan. [NO_LONG_DOUBLE] (tanl): Define as weak alias of __tanl. * sysdeps/x86_64/fpu/multiarch/s_atan-avx.c (atan): Rename to __atan. * sysdeps/x86_64/fpu/multiarch/s_atan-fma.c (atan): Likewise. * sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c (atan): Likewise. * sysdeps/x86_64/fpu/multiarch/s_atan.c (atan): Rename to __atan and define as weak alias of __atan. * sysdeps/x86_64/fpu/multiarch/s_tan-avx.c (tan): Rename to __atan. * sysdeps/x86_64/fpu/multiarch/s_tan-fma.c (tan): Likewise. * sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (tan): Likewise. * sysdeps/x86_64/fpu/multiarch/s_tan.c (tan): Rename to __tan and define as weak alias of __tan.
This commit is contained in:
parent
bdc5c59214
commit
527cd19c3d
24
ChangeLog
24
ChangeLog
|
@ -1,3 +1,27 @@
|
||||||
|
2017-10-02 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* sysdeps/ieee754/dbl-64/s_atan.c (atan): Rename to __atan and
|
||||||
|
define as weak alias of __atan. Do not define any aliases if
|
||||||
|
[__atan].
|
||||||
|
[NO_LONG_DOUBLE] (__atanl): Define as strong alias of __atan.
|
||||||
|
[NO_LONG_DOUBLE] (atanl): Define as weak alias of __atanl.
|
||||||
|
* sysdeps/ieee754/dbl-64/s_tan.c (tan): Rename to __tan and define
|
||||||
|
as weak alias of __tan. Do not define any aliases if [__tan].
|
||||||
|
[NO_LONG_DOUBLE] (__tanl): Define as strong alias of __tan.
|
||||||
|
[NO_LONG_DOUBLE] (tanl): Define as weak alias of __tanl.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/s_atan-avx.c (atan): Rename to
|
||||||
|
__atan.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/s_atan-fma.c (atan): Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c (atan): Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/s_atan.c (atan): Rename to __atan
|
||||||
|
and define as weak alias of __atan.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/s_tan-avx.c (tan): Rename to
|
||||||
|
__atan.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/s_tan-fma.c (tan): Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (tan): Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/s_tan.c (tan): Rename to __tan and
|
||||||
|
define as weak alias of __tan.
|
||||||
|
|
||||||
2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||||||
|
|
||||||
* math/w_lgamma.c: New file.
|
* math/w_lgamma.c: New file.
|
||||||
|
|
|
@ -61,7 +61,7 @@ __signArctan (double x, double y)
|
||||||
/* An ultimate atan() routine. Given an IEEE double machine number x, */
|
/* An ultimate atan() routine. Given an IEEE double machine number x, */
|
||||||
/* routine computes the correctly rounded (to nearest) value of atan(x). */
|
/* routine computes the correctly rounded (to nearest) value of atan(x). */
|
||||||
double
|
double
|
||||||
atan (double x)
|
__atan (double x)
|
||||||
{
|
{
|
||||||
double cor, s1, ss1, s2, ss2, t1, t2, t3, t7, t8, t9, t10, u, u2, u3,
|
double cor, s1, ss1, s2, ss2, t1, t2, t3, t7, t8, t9, t10, u, u2, u3,
|
||||||
v, vv, w, ww, y, yy, z, zz;
|
v, vv, w, ww, y, yy, z, zz;
|
||||||
|
@ -323,6 +323,10 @@ atanMp (double x, const int pr[])
|
||||||
return y1; /*if impossible to do exact computing */
|
return y1; /*if impossible to do exact computing */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NO_LONG_DOUBLE
|
#ifndef __atan
|
||||||
weak_alias (atan, atanl)
|
weak_alias (__atan, atan)
|
||||||
|
# ifdef NO_LONG_DOUBLE
|
||||||
|
strong_alias (__atan, __atanl)
|
||||||
|
weak_alias (__atanl, atanl)
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -53,7 +53,7 @@ void __mptan (double, mp_no *, int);
|
||||||
|
|
||||||
double
|
double
|
||||||
SECTION
|
SECTION
|
||||||
tan (double x)
|
__tan (double x)
|
||||||
{
|
{
|
||||||
#include "utan.h"
|
#include "utan.h"
|
||||||
#include "utan.tbl"
|
#include "utan.tbl"
|
||||||
|
@ -843,6 +843,10 @@ tanMp (double x)
|
||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NO_LONG_DOUBLE
|
#ifndef __tan
|
||||||
weak_alias (tan, tanl)
|
weak_alias (__tan, tan)
|
||||||
|
# ifdef NO_LONG_DOUBLE
|
||||||
|
strong_alias (__tan, __tanl)
|
||||||
|
weak_alias (__tanl, tanl)
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#define atan __atan_avx
|
#define __atan __atan_avx
|
||||||
#define __add __add_avx
|
#define __add __add_avx
|
||||||
#define __dbl_mp __dbl_mp_avx
|
#define __dbl_mp __dbl_mp_avx
|
||||||
#define __mul __mul_avx
|
#define __mul __mul_avx
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#define atan __atan_fma
|
#define __atan __atan_fma
|
||||||
#define __add __add_fma
|
#define __add __add_fma
|
||||||
#define __dbl_mp __dbl_mp_fma
|
#define __dbl_mp __dbl_mp_fma
|
||||||
#define __mpatan __mpatan_fma
|
#define __mpatan __mpatan_fma
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#define atan __atan_fma4
|
#define __atan __atan_fma4
|
||||||
#define __add __add_fma4
|
#define __add __add_fma4
|
||||||
#define __dbl_mp __dbl_mp_fma4
|
#define __dbl_mp __dbl_mp_fma4
|
||||||
#define __mpatan __mpatan_fma4
|
#define __mpatan __mpatan_fma4
|
||||||
|
|
|
@ -21,7 +21,8 @@ extern double __redirect_atan (double);
|
||||||
#define SYMBOL_NAME atan
|
#define SYMBOL_NAME atan
|
||||||
#include "ifunc-avx-fma4.h"
|
#include "ifunc-avx-fma4.h"
|
||||||
|
|
||||||
libc_ifunc_redirected (__redirect_atan, atan, IFUNC_SELECTOR ());
|
libc_ifunc_redirected (__redirect_atan, __atan, IFUNC_SELECTOR ());
|
||||||
|
weak_alias (__atan, atan)
|
||||||
|
|
||||||
#define atan __atan_sse2
|
#define __atan __atan_sse2
|
||||||
#include <sysdeps/ieee754/dbl-64/s_atan.c>
|
#include <sysdeps/ieee754/dbl-64/s_atan.c>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#define tan __tan_avx
|
#define __tan __tan_avx
|
||||||
#define __dbl_mp __dbl_mp_avx
|
#define __dbl_mp __dbl_mp_avx
|
||||||
#define __sub __sub_avx
|
#define __sub __sub_avx
|
||||||
#define SECTION __attribute__ ((section (".text.avx")))
|
#define SECTION __attribute__ ((section (".text.avx")))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#define tan __tan_fma
|
#define __tan __tan_fma
|
||||||
#define __dbl_mp __dbl_mp_fma
|
#define __dbl_mp __dbl_mp_fma
|
||||||
#define __mpranred __mpranred_fma
|
#define __mpranred __mpranred_fma
|
||||||
#define __mptan __mptan_fma
|
#define __mptan __mptan_fma
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#define tan __tan_fma4
|
#define __tan __tan_fma4
|
||||||
#define __dbl_mp __dbl_mp_fma4
|
#define __dbl_mp __dbl_mp_fma4
|
||||||
#define __mpranred __mpranred_fma4
|
#define __mpranred __mpranred_fma4
|
||||||
#define __mptan __mptan_fma4
|
#define __mptan __mptan_fma4
|
||||||
|
|
|
@ -21,7 +21,8 @@ extern double __redirect_tan (double);
|
||||||
#define SYMBOL_NAME tan
|
#define SYMBOL_NAME tan
|
||||||
#include "ifunc-avx-fma4.h"
|
#include "ifunc-avx-fma4.h"
|
||||||
|
|
||||||
libc_ifunc_redirected (__redirect_tan, tan, IFUNC_SELECTOR ());
|
libc_ifunc_redirected (__redirect_tan, __tan, IFUNC_SELECTOR ());
|
||||||
|
weak_alias (__tan, tan)
|
||||||
|
|
||||||
#define tan __tan_sse2
|
#define __tan __tan_sse2
|
||||||
#include <sysdeps/ieee754/dbl-64/s_tan.c>
|
#include <sysdeps/ieee754/dbl-64/s_tan.c>
|
||||||
|
|
Loading…
Reference in New Issue