diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2012-10-02 05:05:17 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2012-10-04 07:07:02 -0700 |
commit | a5cfcf08ffaa8f2f6dee090b9132309e00df9888 (patch) | |
tree | f9f6759687b7b12d1272dfc362d75ec47bf1cae2 | |
parent | cbc43bc538c3f06281e53e1345c77e1227f1b7a7 (diff) | |
download | glibc-a5cfcf08ffaa8f2f6dee090b9132309e00df9888.tar glibc-a5cfcf08ffaa8f2f6dee090b9132309e00df9888.tar.gz glibc-a5cfcf08ffaa8f2f6dee090b9132309e00df9888.tar.bz2 glibc-a5cfcf08ffaa8f2f6dee090b9132309e00df9888.zip |
Define HAS_FMA with bit_FMA_Usable
cherry-pick 0569936773c861c791f10bba5e2f4cac5fbb4e78
Conflicts:
ChangeLog
NEWS
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/multiarch/init-arch.c | 3 | ||||
-rw-r--r-- | sysdeps/x86_64/multiarch/init-arch.h | 9 |
4 files changed, 23 insertions, 3 deletions
@@ -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] @@ -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 diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c index fb44dcfcf6..fed5ab8982 100644 --- a/sysdeps/x86_64/multiarch/init-arch.c +++ b/sysdeps/x86_64/multiarch/init-arch.c @@ -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; diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h index 45e2651678..f33f1c81e5 100644 --- a/sysdeps/x86_64/multiarch/init-arch.h +++ b/sysdeps/x86_64/multiarch/init-arch.h @@ -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__ */ |