Don't put SSE2/AVX/AVX512 memmove/memset in ld.so
Since memmove and memset in ld.so don't use IFUNC, don't put SSE2, AVX and AVX512 memmove and memset in ld.so. * sysdeps/x86_64/multiarch/memmove-avx-unaligned-erms.S: Skip if not in libc. * sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S: Likewise. * sysdeps/x86_64/multiarch/memset-avx2-unaligned-erms.S: Likewise. * sysdeps/x86_64/multiarch/memset-avx512-unaligned-erms.S: Likewise.
This commit is contained in:
parent
ea2785e96f
commit
5cd7af016d
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
2016-04-03 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* sysdeps/x86_64/multiarch/memmove-avx-unaligned-erms.S: Skip
|
||||
if not in libc.
|
||||
* sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S:
|
||||
Likewise.
|
||||
* sysdeps/x86_64/multiarch/memset-avx2-unaligned-erms.S:
|
||||
Likewise.
|
||||
* sysdeps/x86_64/multiarch/memset-avx512-unaligned-erms.S:
|
||||
Likewise.
|
||||
|
||||
2016-04-03 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
#define VEC_SIZE 32
|
||||
#define VEC(i) ymm##i
|
||||
#define VMOVU vmovdqu
|
||||
#define VMOVA vmovdqa
|
||||
#if IS_IN (libc)
|
||||
# define VEC_SIZE 32
|
||||
# define VEC(i) ymm##i
|
||||
# define VMOVU vmovdqu
|
||||
# define VMOVA vmovdqa
|
||||
|
||||
#define SECTION(p) p##.avx
|
||||
#define MEMMOVE_SYMBOL(p,s) p##_avx_##s
|
||||
# define SECTION(p) p##.avx
|
||||
# define MEMMOVE_SYMBOL(p,s) p##_avx_##s
|
||||
|
||||
#include "memmove-vec-unaligned-erms.S"
|
||||
# include "memmove-vec-unaligned-erms.S"
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#ifdef HAVE_AVX512_ASM_SUPPORT
|
||||
#if defined HAVE_AVX512_ASM_SUPPORT && IS_IN (libc)
|
||||
# define VEC_SIZE 64
|
||||
# define VEC(i) zmm##i
|
||||
# define VMOVU vmovdqu64
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
#define VEC_SIZE 16
|
||||
#define VEC(i) xmm##i
|
||||
#define VMOVU movdqu
|
||||
#define VMOVA movdqa
|
||||
#if IS_IN (libc)
|
||||
# define VEC_SIZE 16
|
||||
# define VEC(i) xmm##i
|
||||
# define VMOVU movdqu
|
||||
# define VMOVA movdqa
|
||||
|
||||
#define SECTION(p) p
|
||||
#define MEMMOVE_SYMBOL(p,s) p##_sse2_##s
|
||||
# define SECTION(p) p
|
||||
# define MEMMOVE_SYMBOL(p,s) p##_sse2_##s
|
||||
|
||||
#include "memmove-vec-unaligned-erms.S"
|
||||
# include "memmove-vec-unaligned-erms.S"
|
||||
#endif
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
#define VEC_SIZE 32
|
||||
#define VEC(i) ymm##i
|
||||
#define VMOVU vmovdqu
|
||||
#define VMOVA vmovdqa
|
||||
#if IS_IN (libc)
|
||||
# define VEC_SIZE 32
|
||||
# define VEC(i) ymm##i
|
||||
# define VMOVU vmovdqu
|
||||
# define VMOVA vmovdqa
|
||||
|
||||
#define VDUP_TO_VEC0_AND_SET_RETURN(d, r) \
|
||||
# define VDUP_TO_VEC0_AND_SET_RETURN(d, r) \
|
||||
vmovd d, %xmm0; \
|
||||
movq r, %rax; \
|
||||
vpbroadcastb %xmm0, %ymm0
|
||||
|
||||
#define SECTION(p) p##.avx
|
||||
#define MEMSET_SYMBOL(p,s) p##_avx2_##s
|
||||
# define SECTION(p) p##.avx
|
||||
# define MEMSET_SYMBOL(p,s) p##_avx2_##s
|
||||
|
||||
#include "memset-vec-unaligned-erms.S"
|
||||
# include "memset-vec-unaligned-erms.S"
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#ifdef HAVE_AVX512_ASM_SUPPORT
|
||||
#if defined HAVE_AVX512_ASM_SUPPORT && IS_IN (libc)
|
||||
# define VEC_SIZE 64
|
||||
# define VEC(i) zmm##i
|
||||
# define VMOVU vmovdqu64
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
#define VEC_SIZE 16
|
||||
#define VEC(i) xmm##i
|
||||
#define VMOVU movdqu
|
||||
#define VMOVA movdqa
|
||||
#if IS_IN (libc)
|
||||
# define VEC_SIZE 16
|
||||
# define VEC(i) xmm##i
|
||||
# define VMOVU movdqu
|
||||
# define VMOVA movdqa
|
||||
|
||||
#define VDUP_TO_VEC0_AND_SET_RETURN(d, r) \
|
||||
# define VDUP_TO_VEC0_AND_SET_RETURN(d, r) \
|
||||
movd d, %xmm0; \
|
||||
movq r, %rax; \
|
||||
punpcklbw %xmm0, %xmm0; \
|
||||
punpcklwd %xmm0, %xmm0; \
|
||||
pshufd $0, %xmm0, %xmm0
|
||||
|
||||
#define SECTION(p) p
|
||||
#define MEMSET_SYMBOL(p,s) p##_sse2_##s
|
||||
# define SECTION(p) p
|
||||
# define MEMSET_SYMBOL(p,s) p##_sse2_##s
|
||||
|
||||
#include "memset-vec-unaligned-erms.S"
|
||||
# include "memset-vec-unaligned-erms.S"
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue