]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Define HAS_FMA with bit_FMA_Usable
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 2 Oct 2012 12:05:17 +0000 (05:05 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 4 Oct 2012 14:07:02 +0000 (07:07 -0700)
cherry-pick 0569936773c861c791f10bba5e2f4cac5fbb4e78

Conflicts:
ChangeLog
NEWS

ChangeLog
NEWS
sysdeps/x86_64/multiarch/init-arch.c
sysdeps/x86_64/multiarch/init-arch.h

index 7c7230058c3ee63a4ee52e64d49c47ef70567e8c..ef468a591d946b5cd2713e169b4e65ad2683920f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2012-10-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #14648]
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Set bit_FMA_Usable if FMA is supported.
+       * sysdeps/x86_64/multiarch/init-arch.h (bit_FMA_Usable): New
+       macro.
+       (bit_FMA4_Usable): Updated.
+       (index_FMA_Usable): New macro.
+       (CPUID_FMA): Likewise
+       (HAS_FMA): Defined with bit_FMA_Usable.
+
 2012-09-28  Andreas Schwab  <schwab@linux-m68k.org>
 
        [BZ #6530]
diff --git a/NEWS b/NEWS
index 50aec9ddc8fb9939f701c5b77d253155a3b27cdd..507a0b1b9d72672b75960b113dd88f61622d744c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,7 @@ Version 2.16.1
 
 * The following bugs are resolved with this release:
 
-  6530, 14195, 14459, 14476, 14562, 14621
+  6530, 14195, 14459, 14476, 14562, 14621, 14648
 
 Version 2.16
 
index fb44dcfcf68c299c1e8a2049606a9deb80f8e70b..fed5ab8982126d89a869f91d733b5b65cf40a003 100644 (file)
@@ -156,6 +156,9 @@ __init_cpu_features (void)
          /* Determine if AVX is usable.  */
          if (CPUID_AVX)
            __cpu_features.feature[index_AVX_Usable] |= bit_AVX_Usable;
+         /* Determine if FMA is usable.  */
+         if (CPUID_FMA)
+           __cpu_features.feature[index_FMA_Usable] |= bit_FMA_Usable;
          /* Determine if FMA4 is usable.  */
          if (CPUID_FMA4)
            __cpu_features.feature[index_FMA4_Usable] |= bit_FMA4_Usable;
index 45e2651678dd2c417e76548d98d31cd9a1ac47c0..f33f1c81e5cf059ea5f9eb588e9cd1db0599c913 100644 (file)
@@ -22,7 +22,8 @@
 #define bit_Fast_Unaligned_Load                (1 << 4)
 #define bit_Prefer_PMINUB_for_stringop (1 << 5)
 #define bit_AVX_Usable                 (1 << 6)
-#define bit_FMA4_Usable                        (1 << 7)
+#define bit_FMA_Usable                 (1 << 7)
+#define bit_FMA4_Usable                        (1 << 8)
 
 /* CPUID Feature flags.  */
 #define bit_SSE2       (1 << 26)
@@ -56,6 +57,7 @@
 # define index_Fast_Unaligned_Load     FEATURE_INDEX_1*FEATURE_SIZE
 # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE
 # define index_AVX_Usable              FEATURE_INDEX_1*FEATURE_SIZE
+# define index_FMA_Usable              FEATURE_INDEX_1*FEATURE_SIZE
 # define index_FMA4_Usable             FEATURE_INDEX_1*FEATURE_SIZE
 
 #else  /* __ASSEMBLER__ */
@@ -131,6 +133,8 @@ extern const struct cpu_features *__get_cpu_features (void)
   HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_OSXSAVE)
 # define CPUID_AVX \
   HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_AVX)
+# define CPUID_FMA \
+  HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_FMA)
 # define CPUID_FMA4 \
   HAS_CPUID_FLAG (COMMON_CPUID_INDEX_80000001, ecx, bit_FMA4)
 
@@ -140,7 +144,6 @@ extern const struct cpu_features *__get_cpu_features (void)
 # define HAS_SSSE3     HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSSE3)
 # define HAS_SSE4_1    HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_1)
 # define HAS_SSE4_2    HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_2)
-# define HAS_FMA       HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_FMA)
 
 # define index_Fast_Rep_String         FEATURE_INDEX_1
 # define index_Fast_Copy_Backward      FEATURE_INDEX_1
@@ -148,6 +151,7 @@ extern const struct cpu_features *__get_cpu_features (void)
 # define index_Prefer_SSE_for_memop    FEATURE_INDEX_1
 # define index_Fast_Unaligned_Load     FEATURE_INDEX_1
 # define index_AVX_Usable              FEATURE_INDEX_1
+# define index_FMA_Usable              FEATURE_INDEX_1
 # define index_FMA4_Usable             FEATURE_INDEX_1
 
 # define HAS_ARCH_FEATURE(name) \
@@ -159,6 +163,7 @@ extern const struct cpu_features *__get_cpu_features (void)
 # define HAS_PREFER_SSE_FOR_MEMOP      HAS_ARCH_FEATURE (Prefer_SSE_for_memop)
 # define HAS_FAST_UNALIGNED_LOAD       HAS_ARCH_FEATURE (Fast_Unaligned_Load)
 # define HAS_AVX                       HAS_ARCH_FEATURE (AVX_Usable)
+# define HAS_FMA                       HAS_ARCH_FEATURE (FMA_Usable)
 # define HAS_FMA4                      HAS_ARCH_FEATURE (FMA4_Usable)
 
 #endif /* __ASSEMBLER__ */