Use libm_alias_double in ldbl-128, ldbl-96 fma.

This patch makes the ldbl-128 and ldbl-96 implementations of fma use
libm_alias_double.

Tested for x86_64, and tested with build-many-glibcs.py that installed
stripped shared libraries are unchanged by the patch.

	* sysdeps/ieee754/ldbl-128/s_fma.c: Include <libm-alias-double.h>.
	[!__fma] (fma): Define using libm_alias_double.
	* sysdeps/ieee754/ldbl-96/s_fma.c: Include <libm-alias-double.h>.
	[!__fma] (fma): Define using libm_alias_double.
This commit is contained in:
Joseph Myers 2017-10-06 20:23:58 +00:00
parent fd3b4e7c8a
commit f85a176f3f
3 changed files with 9 additions and 2 deletions

View File

@ -1,5 +1,10 @@
2017-10-06 Joseph Myers <joseph@codesourcery.com> 2017-10-06 Joseph Myers <joseph@codesourcery.com>
* sysdeps/ieee754/ldbl-128/s_fma.c: Include <libm-alias-double.h>.
[!__fma] (fma): Define using libm_alias_double.
* sysdeps/ieee754/ldbl-96/s_fma.c: Include <libm-alias-double.h>.
[!__fma] (fma): Define using libm_alias_double.
* sysdeps/ieee754/float128/float128_private.h: Include * sysdeps/ieee754/float128/float128_private.h: Include
<libm-alias-ldouble.h> and <libm-alias-float128.h>. <libm-alias-ldouble.h> and <libm-alias-float128.h>.
(libm_alias_ldouble_r): Undefine and redefine. (libm_alias_ldouble_r): Undefine and redefine.

View File

@ -20,6 +20,7 @@
#include <math.h> #include <math.h>
#include <fenv.h> #include <fenv.h>
#include <ieee754.h> #include <ieee754.h>
#include <libm-alias-double.h>
/* This implementation relies on long double being more than twice as /* This implementation relies on long double being more than twice as
precise as double and uses rounding to odd in order to avoid problems precise as double and uses rounding to odd in order to avoid problems
@ -51,5 +52,5 @@ __fma (double x, double y, double z)
return (double) u.d; return (double) u.d;
} }
#ifndef __fma #ifndef __fma
weak_alias (__fma, fma) libm_alias_double (__fma, fma)
#endif #endif

View File

@ -22,6 +22,7 @@
#include <fenv.h> #include <fenv.h>
#include <ieee754.h> #include <ieee754.h>
#include <math_private.h> #include <math_private.h>
#include <libm-alias-double.h>
/* This implementation uses rounding to odd to avoid problems with /* This implementation uses rounding to odd to avoid problems with
double rounding. See a paper by Boldo and Melquiond: double rounding. See a paper by Boldo and Melquiond:
@ -97,5 +98,5 @@ __fma (double x, double y, double z)
return u.d; return u.d;
} }
#ifndef __fma #ifndef __fma
weak_alias (__fma, fma) libm_alias_double (__fma, fma)
#endif #endif