[newlib-cygwin] libm: ARM without HW double does not have fast FMA

Corinna Vinschen corinna@sourceware.org
Mon Aug 10 19:06:29 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=432b331c79a379ef92635fc173b4689b6d5b3feb

commit 432b331c79a379ef92635fc173b4689b6d5b3feb
Author: Keith Packard via Newlib <newlib@sourceware.org>
Date:   Sat Aug 8 15:34:11 2020 -0700

    libm: ARM without HW double does not have fast FMA
    
    32-bit ARM processors with HW float (but not HW double) may define
    __ARM_FEATURE_FMA, but that only means they have fast FMA for 32-bit
    floats.
    
    Signed-off-by: Keith Packard <keithp@keithp.com>

Diff:
---
 newlib/libm/common/math_config.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/newlib/libm/common/math_config.h b/newlib/libm/common/math_config.h
index 1089b0ec6..df8f8d6e4 100644
--- a/newlib/libm/common/math_config.h
+++ b/newlib/libm/common/math_config.h
@@ -72,7 +72,7 @@
 
 /* Compiler can inline fma as a single instruction.  */
 #ifndef HAVE_FAST_FMA
-# if __aarch64__ || __ARM_FEATURE_FMA
+# if __aarch64__ || (__ARM_FEATURE_FMA && (__ARM_FP & 8))
 #   define HAVE_FAST_FMA 1
 # else
 #   define HAVE_FAST_FMA 0


More information about the Newlib-cvs mailing list