diff mbox

Add ifunc tests for x86_64 memset_chk and memset

Message ID 20140619223741.GA13491@intel.com
State New
Headers show

Commit Message

H.J. Lu June 19, 2014, 10:37 p.m. UTC
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

Roland McGrath June 20, 2014, 5:29 p.m. UTC | #1
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.
H.J. Lu June 20, 2014, 9:53 p.m. UTC | #2
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.
diff mbox

Patch

diff --git a/ChangeLog b/ChangeLog
index 450cb7f..0e25f39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
index 6da9be1..f1593c5 100644
--- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
@@ -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,
diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h
index e4d265d..ef0abbd 100644
--- a/sysdeps/x86_64/multiarch/init-arch.h
+++ b/sysdeps/x86_64/multiarch/init-arch.h
@@ -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)