diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | bits/mathdef.h | 14 | ||||
-rw-r--r-- | sysdeps/powerpc/bits/mathdef.h | 4 |
3 files changed, 28 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 613f8dfb3f..f90f303069 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2010-10-19 Michael Meissner <meissner@linux.vnet.ibm.com> + + * bits/mathdef.h (FP_FAST_FMA): If the GCC 4.6 port has fast fma + builtins, define the macros in the C99 standard. + (FP_FAST_FMAF): Likewise. + (FP_FAST_FMAL): Likewise. + * sysdeps/powerpc/bits/mathdef.h (FP_FAST_FMA): Define, ppc as + multiply/add. + (FP_FAST_FMAF): Likewise. + 2010-10-15 Jakub Jelinek <jakub@redhat.com> [BZ #3268] diff --git a/bits/mathdef.h b/bits/mathdef.h index 00c67241a0..973438097e 100644 --- a/bits/mathdef.h +++ b/bits/mathdef.h @@ -34,6 +34,20 @@ typedef double double_t; /* `double' expressions are evaluated as # define FP_ILOGB0 (-2147483647) # define FP_ILOGBNAN 2147483647 +/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l} + builtins are supported. */ +#if __FP_FAST_FMA +# define FP_FAST_FMA 1 +#endif + +#if __FP_FAST_FMAF +# define FP_FAST_FMAF 1 +#endif + +#if __FP_FAST_FMAL +# define FP_FAST_FMAL 1 +#endif + #endif /* ISO C99 */ #ifndef __NO_LONG_DOUBLE_MATH diff --git a/sysdeps/powerpc/bits/mathdef.h b/sysdeps/powerpc/bits/mathdef.h index b79cc6ff96..0c99248bed 100644 --- a/sysdeps/powerpc/bits/mathdef.h +++ b/sysdeps/powerpc/bits/mathdef.h @@ -61,4 +61,8 @@ typedef double double_t; # define FP_ILOGB0 (-2147483647) # define FP_ILOGBNAN (2147483647) +/* The powerpc has a combined multiply/add instruction. */ +# define FP_FAST_FMA 1 +# define FP_FAST_FMAF 1 + #endif /* ISO C99 */ |