]> 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:28:33 +0000 (07:28 -0700)
cherry-pick 0569936773c861c791f10bba5e2f4cac5fbb4e78

Conflicts:
ChangeLog
NEWS

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

index a0b960ce402fdd73841475595b602830b08b94a0..c9eaa234300c6286b4ce997dd15f3504c0de0821 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-25  Joseph Myers  <joseph@codesourcery.com>
 
        [BZ #14621]
diff --git a/NEWS b/NEWS
index ad5006820e51de9b6f1af859db05ce7c09841661..f26e2f4bd6c3a74b99faa8743ab0879121bd163d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -11,7 +11,7 @@ Version 2.15.1
 
   411, 2547, 2548, 11365, 11494, 13583, 13731, 13732, 13733, 13747, 13748,
   13749, 13753, 13771, 13774, 13786, 14048, 14059, 14167, 14273, 14459,
-  14621
+  14621, 14648
 
 Version 2.15
 
index df0fe55cad1a738b1b81640300f5db073635966a..4855924ebad4f2dd9d2dd1ececc86488f264b12d 100644 (file)
@@ -157,6 +157,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 37566c88df7466120ca450b04598598b5979f683..9604884c2ba9985dcddb9a4f7ac4f94bebcb31fb 100644 (file)
@@ -23,7 +23,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)
@@ -57,6 +58,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__ */
@@ -132,6 +134,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)
 
@@ -141,7 +145,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
@@ -149,6 +152,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) \
@@ -160,6 +164,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__ */