IFUNC_IMPL_ADD (array, i, strcasecmp,
CPU_FEATURE_USABLE (SSE4_2),
__strcasecmp_sse42)
- IFUNC_IMPL_ADD (array, i, strcasecmp,
- CPU_FEATURE_USABLE (SSSE3),
- __strcasecmp_ssse3)
IFUNC_IMPL_ADD (array, i, strcasecmp, 1, __strcasecmp_sse2))
/* Support sysdeps/x86_64/multiarch/strcasecmp_l.c. */
IFUNC_IMPL_ADD (array, i, strcasecmp_l,
CPU_FEATURE_USABLE (SSE4_2),
__strcasecmp_l_sse42)
- IFUNC_IMPL_ADD (array, i, strcasecmp_l,
- CPU_FEATURE_USABLE (SSSE3),
- __strcasecmp_l_ssse3)
IFUNC_IMPL_ADD (array, i, strcasecmp_l, 1,
__strcasecmp_l_sse2))
__strcmp_evex)
IFUNC_IMPL_ADD (array, i, strcmp, CPU_FEATURE_USABLE (SSE4_2),
__strcmp_sse42)
- IFUNC_IMPL_ADD (array, i, strcmp, CPU_FEATURE_USABLE (SSSE3),
- __strcmp_ssse3)
IFUNC_IMPL_ADD (array, i, strcmp, 1, __strcmp_sse2_unaligned)
IFUNC_IMPL_ADD (array, i, strcmp, 1, __strcmp_sse2))
IFUNC_IMPL_ADD (array, i, strncasecmp,
CPU_FEATURE_USABLE (SSE4_2),
__strncasecmp_sse42)
- IFUNC_IMPL_ADD (array, i, strncasecmp,
- CPU_FEATURE_USABLE (SSSE3),
- __strncasecmp_ssse3)
IFUNC_IMPL_ADD (array, i, strncasecmp, 1,
__strncasecmp_sse2))
IFUNC_IMPL_ADD (array, i, strncasecmp_l,
CPU_FEATURE_USABLE (SSE4_2),
__strncasecmp_l_sse42)
- IFUNC_IMPL_ADD (array, i, strncasecmp_l,
- CPU_FEATURE_USABLE (SSSE3),
- __strncasecmp_l_ssse3)
IFUNC_IMPL_ADD (array, i, strncasecmp_l, 1,
__strncasecmp_l_sse2))
__strncmp_evex)
IFUNC_IMPL_ADD (array, i, strncmp, CPU_FEATURE_USABLE (SSE4_2),
__strncmp_sse42)
- IFUNC_IMPL_ADD (array, i, strncmp, CPU_FEATURE_USABLE (SSSE3),
- __strncmp_ssse3)
IFUNC_IMPL_ADD (array, i, strncmp, 1, __strncmp_sse2))
#ifdef SHARED
# endif
#endif
-#ifndef USE_SSSE3
.text
-#else
- .section .text.ssse3,"ax",@progbits
-#endif
-
#ifdef USE_AS_STRCASECMP_L
# ifndef ENTRY2
# define ENTRY2(name) ENTRY (name)
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4 /* store for next cycle */
-#ifndef USE_SSSE3
psrldq $1, %xmm3
pslldq $15, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4 /* store for next cycle */
-#ifndef USE_SSSE3
psrldq $1, %xmm3
pslldq $15, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $2, %xmm3
pslldq $14, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $2, %xmm3
pslldq $14, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $3, %xmm3
pslldq $13, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $3, %xmm3
pslldq $13, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $4, %xmm3
pslldq $12, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $4, %xmm3
pslldq $12, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $5, %xmm3
pslldq $11, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $5, %xmm3
pslldq $11, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $6, %xmm3
pslldq $10, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $6, %xmm3
pslldq $10, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $7, %xmm3
pslldq $9, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $7, %xmm3
pslldq $9, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $8, %xmm3
pslldq $8, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $8, %xmm3
pslldq $8, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $9, %xmm3
pslldq $7, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $9, %xmm3
pslldq $7, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $10, %xmm3
pslldq $6, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $10, %xmm3
pslldq $6, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $11, %xmm3
pslldq $5, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $11, %xmm3
pslldq $5, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $12, %xmm3
pslldq $4, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $12, %xmm3
pslldq $4, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $13, %xmm3
pslldq $3, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $13, %xmm3
pslldq $3, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $14, %xmm3
pslldq $2, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $14, %xmm3
pslldq $2, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $15, %xmm3
pslldq $1, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
movdqa (%rdi, %rcx), %xmm2
movdqa %xmm2, %xmm4
-#ifndef USE_SSSE3
psrldq $15, %xmm3
pslldq $1, %xmm2
por %xmm3, %xmm2 /* merge into one 16byte value */
-#else
- palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */
-#endif
+
TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0