Add ifunc tests for x86_64 memset_chk and memset
Commit Message
This patch adds ifunc tests for x86_64 memset_chk and memset. It also
defines HAS_AVX2 with AVX2_Usable since AVX2 may not be usable even if
processor has AVX2. OK to install?
Thanks.
H.J.
--
* sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list):
Add tests for memset_chk and memset.
* sysdeps/x86_64/multiarch/init-arch.h (HAS_AVX2): Defined
with AVX2_Usable.
---
ChangeLog | 8 ++++++++
sysdeps/x86_64/multiarch/ifunc-impl-list.c | 11 +++++++++++
sysdeps/x86_64/multiarch/init-arch.h | 2 +-
3 files changed, 20 insertions(+), 1 deletion(-)
Comments
You didn't mention what testing you did. Please do that in all patches so
we don't have to ask or guess. Assuming make check passes, that looks
fine.
On Fri, Jun 20, 2014 at 10:29 AM, Roland McGrath <roland@hack.frob.com> wrote:
> You didn't mention what testing you did. Please do that in all patches so
> we don't have to ask or guess. Assuming make check passes, that looks
> fine.
I tested it on Ivy Bride and Haswell. There were no regressions.
I checked in it.
Thanks.
@@ -1,5 +1,13 @@
2014-06-19 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list):
+ Add tests for memset_chk and memset.
+
+ * sysdeps/x86_64/multiarch/init-arch.h (HAS_AVX2): Defined
+ with AVX2_Usable.
+
+2014-06-19 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/x86_64/multiarch/rtld-strlen.S: Removed.
2014-06-19 H.J. Lu <hongjiu.lu@intel.com>
@@ -61,6 +61,17 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
__memmove_ssse3)
IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_sse2))
+ /* Support sysdeps/x86_64/multiarch/memset_chk.S. */
+ IFUNC_IMPL (i, name, __memset_chk,
+ IFUNC_IMPL_ADD (array, i, __memset_chk, 1, __memset_chk_sse2)
+ IFUNC_IMPL_ADD (array, i, __memset_chk, HAS_AVX2,
+ __memset_chk_avx2))
+
+ /* Support sysdeps/x86_64/multiarch/memset.S. */
+ IFUNC_IMPL (i, name, memset,
+ IFUNC_IMPL_ADD (array, i, memset, 1, __memset_sse2)
+ IFUNC_IMPL_ADD (array, i, memset, HAS_AVX2, __memset_avx2))
+
/* Support sysdeps/x86_64/multiarch/stpncpy.S. */
IFUNC_IMPL (i, name, stpncpy,
IFUNC_IMPL_ADD (array, i, stpncpy, HAS_SSSE3,
@@ -158,7 +158,6 @@ extern const struct cpu_features *__get_cpu_features (void)
# 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_RTM HAS_CPU_FEATURE (COMMON_CPUID_INDEX_7, ebx, bit_RTM)
-# define HAS_AVX2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_7, ebx, bit_AVX2)
# define index_Fast_Rep_String FEATURE_INDEX_1
# define index_Fast_Copy_Backward FEATURE_INDEX_1
@@ -179,6 +178,7 @@ extern const struct cpu_features *__get_cpu_features (void)
# define HAS_SLOW_BSF HAS_ARCH_FEATURE (Slow_BSF)
# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load)
# define HAS_AVX HAS_ARCH_FEATURE (AVX_Usable)
+# define HAS_AVX2 HAS_ARCH_FEATURE (AVX2_Usable)
# define HAS_FMA HAS_ARCH_FEATURE (FMA_Usable)
# define HAS_FMA4 HAS_ARCH_FEATURE (FMA4_Usable)