[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gsl] [PATCH] Disable use of FMA
From: |
Andreas Schwab |
Subject: |
[Bug-gsl] [PATCH] Disable use of FMA |
Date: |
Sun, 27 Nov 2011 01:12:30 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.91 (gnu/linux) |
The algorithms in cblas (at least) become instable when the compiler is
allowed to contract floating-point expressions. This manifests in the
failure of the ode-initval2 test. Add a configure check to disable fp
contractions.
Andreas.
=== modified file 'configure.ac'
--- configure.ac 2011-09-22 16:13:22 +0000
+++ configure.ac 2011-11-26 23:55:24 +0000
@@ -381,6 +381,28 @@
AC_SUBST(HAVE_DARWIN_IEEE_INTERFACE)
AC_SUBST(HAVE_DARWIN86_IEEE_INTERFACE)
+dnl check for compiler flags to disable use of FMA
+save_cflags="$CFLAGS"
+AC_CACHE_CHECK([for compiler flags to disable use of FMA], ac_cv_c_fma_flags,
+[
+if test X"$GCC" = Xyes; then
+ fma_flags='-ffp-contract=off'
+else
+ fma_flags=
+fi
+if test X"$fma_flags" != X; then
+ CFLAGS="$fma_flags $CFLAGS"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int
foo;]])],[ac_cv_c_fma_flags="$fma_flags"],[ac_cv_c_fma_flags="none"])
+else
+ ac_cv_c_fma_flags="none"
+fi])
+
+if test "$ac_cv_c_fma_flags" != "none" ; then
+ CFLAGS="$ac_cv_c_fma_flags $save_cflags"
+else
+ CFLAGS="$save_cflags"
+fi
+
dnl Check for IEEE control flags
save_cflags="$CFLAGS"
--
Andreas Schwab, address@hidden
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
- [Bug-gsl] [PATCH] Disable use of FMA,
Andreas Schwab <=