aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2010-10-19 12:49:05 -0400
committerLuis Machado <luisgpm@br.ibm.com>2010-11-01 03:14:29 -0200
commitf302527f2cb6d915fee932e08776990bab959578 (patch)
tree3af429e5f6b74d36152c10b5a544a4a9f33d6b1c
parente5aca84376a080f15e917d3bd77d348ad84e8bbe (diff)
downloadglibc-f302527f2cb6d915fee932e08776990bab959578.tar
glibc-f302527f2cb6d915fee932e08776990bab959578.tar.gz
glibc-f302527f2cb6d915fee932e08776990bab959578.tar.bz2
glibc-f302527f2cb6d915fee932e08776990bab959578.zip
Add C99 FP_FAST_FMA{,F,L} macros to math.h
(cherry picked from commit d20501241ea423e477b357d93147530987e0d89e)
-rw-r--r--ChangeLog10
-rw-r--r--bits/mathdef.h14
-rw-r--r--sysdeps/powerpc/bits/mathdef.h4
3 files changed, 28 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 5ad5234dab..4cfa3beeb8 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 */