mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Define HAS_FMA with bit_FMA_Usable
This commit is contained in:
parent
40d4a87bb5
commit
0569936773
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2012-10-02 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-10-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* bits/types.h (__swblk_t): Type removed.
|
||||
|
2
NEWS
2
NEWS
@ -15,7 +15,7 @@ Version 2.17
|
||||
14195, 14237, 14252, 14283, 14298, 14303, 14307, 14328, 14331, 14336,
|
||||
14337, 14347, 14349, 14376, 14459, 14476, 14477, 14505, 14510, 14516,
|
||||
14518, 14519, 14530, 14532, 14538, 14543, 14544, 14545, 14562, 14576,
|
||||
14579, 14583, 14587, 14621, 14638, 14645.
|
||||
14579, 14583, 14587, 14621, 14638, 14645, 14648.
|
||||
|
||||
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
|
||||
Optimized versions of memcpy, memset, and memcmp added for System z10 and
|
||||
|
@ -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;
|
||||
|
@ -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__ */
|
||||
|
Loading…
Reference in New Issue
Block a user