+2015-10-08 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/i386/configure.ac (libc_cv_cc_avx): Remove configure
+ test.
+ (libc_cv_cc_sse2avx): Likewise.
+ * sysdeps/i386/configure: Regenerated.
+ * sysdeps/i386/i686/multiarch/Makefile
+ [$(subdir)$(config-cflags-avx) = mathyes]: Change conditional to
+ [$(subdir) = math].
+ * sysdeps/i386/i686/multiarch/s_fma-fma.c [HAVE_AVX_SUPPORT]: Make
+ code unconditional.
+ * sysdeps/i386/i686/multiarch/s_fma.c [HAVE_AVX_SUPPORT]:
+ Likewise.
+ * sysdeps/i386/i686/multiarch/s_fmaf-fma.c [HAVE_AVX_SUPPORT]:
+ Likewise.
+ * sysdeps/i386/i686/multiarch/s_fmaf.c [HAVE_AVX_SUPPORT]:
+ Likewise.
+ * sysdeps/x86_64/configure.ac (libc_cv_cc_avx): Remove configure
+ test.
+ (libc_cv_cc_sse2avx): Likewise.
+ * sysdeps/x86_64/configure: Regenerated.
+ * sysdeps/x86_64/Makefile [$(config-cflags-avx) = yes]: Make code
+ unconditional.
+ * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_profile)
+ [HAVE_AVX_SUPPORT || HAVE_AVX512_ASM_SUPPORT]: Make code
+ unconditional.
+ (_dl_runtime_profile)
+ [!(HAVE_AVX_SUPPORT || HAVE_AVX512_ASM_SUPPORT)]: Remove
+ conditional code.
+ * sysdeps/x86_64/fpu/multiarch/Makefile
+ [$(config-cflags-sse2avx) = yes]: Make code unconditional.
+ * sysdeps/x86_64/fpu/multiarch/e_atan2.c
+ [HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_exp.c
+ [HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_log.c
+ [HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_atan.c
+ [HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_fma.c [HAVE_AVX_SUPPORT]:
+ Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_fmaf.c [HAVE_AVX_SUPPORT]:
+ Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_sin.c
+ [HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_tan.c
+ [HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Likewise.
+ * sysdeps/x86_64/multiarch/strcmp.S [HAVE_AVX_SUPPORT]: Likewise.
+ * config.h.in (HAVE_AVX_SUPPORT): Remove #undef.
+ (HAVE_SSE2AVX_SUPPORT): Likewise.
+
2015-10-07 Paul Pluzhnikov <ppluzhnikov@google.com>
* stdio-common/tst-printf-bz18872.sh: Use attribute optimize
/* Define if _rtld_local structure should be forced into .sdata section. */
#undef HAVE_SDATA_SECTION
-/* Define if gcc supports AVX. */
-#undef HAVE_AVX_SUPPORT
-
-/* Define if gcc supports VEX encoding. */
-#undef HAVE_SSE2AVX_SUPPORT
-
/* Define if compiler supports AVX512. */
#undef HAVE_AVX512_SUPPORT
config_vars="$config_vars
config-asflags-i686 = $libc_cv_as_i686"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX support" >&5
-$as_echo_n "checking for AVX support... " >&6; }
-if ${libc_cv_cc_avx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if { ac_try='${CC-cc} -mavx -xc /dev/null -S -o /dev/null'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- libc_cv_cc_avx=yes
-else
- libc_cv_cc_avx=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_avx" >&5
-$as_echo "$libc_cv_cc_avx" >&6; }
-if test $libc_cv_cc_avx = yes; then
- $as_echo "#define HAVE_AVX_SUPPORT 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-config-cflags-avx = $libc_cv_cc_avx"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5
-$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; }
-if ${libc_cv_cc_sse2avx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if { ac_try='${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- libc_cv_cc_sse2avx=yes
-else
- libc_cv_cc_sse2avx=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_sse2avx" >&5
-$as_echo "$libc_cv_cc_sse2avx" >&6; }
-if test $libc_cv_cc_sse2avx = yes; then
- $as_echo "#define HAVE_SSE2AVX_SUPPORT 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-config-cflags-sse2avx = $libc_cv_cc_sse2avx"
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FMA4 support" >&5
$as_echo_n "checking for FMA4 support... " >&6; }
if ${libc_cv_cc_fma4+:} false; then :
])
LIBC_CONFIG_VAR([config-asflags-i686], [$libc_cv_as_i686])
-dnl Check if -mavx works.
-AC_CACHE_CHECK(for AVX support, libc_cv_cc_avx, [dnl
-LIBC_TRY_CC_OPTION([-mavx], [libc_cv_cc_avx=yes], [libc_cv_cc_avx=no])
-])
-if test $libc_cv_cc_avx = yes; then
- AC_DEFINE(HAVE_AVX_SUPPORT)
-fi
-LIBC_CONFIG_VAR([config-cflags-avx], [$libc_cv_cc_avx])
-
-dnl Check if -msse2avx works.
-AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl
-LIBC_TRY_CC_OPTION([-msse2avx],
- [libc_cv_cc_sse2avx=yes],
- [libc_cv_cc_sse2avx=no])
-])
-if test $libc_cv_cc_sse2avx = yes; then
- AC_DEFINE(HAVE_SSE2AVX_SUPPORT)
-fi
-LIBC_CONFIG_VAR([config-cflags-sse2avx], [$libc_cv_cc_sse2avx])
-
dnl Check if -mfma4 works.
AC_CACHE_CHECK(for FMA4 support, libc_cv_cc_fma4, [dnl
LIBC_TRY_CC_OPTION([-mfma4], [libc_cv_cc_fma4=yes], [libc_cv_cc_fma4=no])
wcschr-c wcsrchr-sse2 wcsrchr-c wcscpy-ssse3 wcscpy-c
endif
-ifeq (mathyes,$(subdir)$(config-cflags-avx))
+ifeq ($(subdir),math)
libm-sysdep_routines += s_fma-fma s_fmaf-fma
CFLAGS-s_fma-fma.c += -mavx -mfpmath=sse
CFLAGS-s_fmaf-fma.c += -mavx -mfpmath=sse
#include <config.h>
-#ifdef HAVE_AVX_SUPPORT
double
__fma_fma (double x, double y, double z)
{
asm ("vfmadd213sd %3, %2, %0" : "=x" (x) : "0" (x), "x" (y), "xm" (z));
return x;
}
-#endif
#include <config.h>
-#ifdef HAVE_AVX_SUPPORT
#include <math.h>
#include <init-arch.h>
HAS_ARCH_FEATURE (FMA_Usable) ? __fma_fma : __fma_ia32);
weak_alias (__fma, fma)
-# define __fma __fma_ia32
-#endif
+#define __fma __fma_ia32
#include <sysdeps/ieee754/ldbl-96/s_fma.c>
#include <config.h>
-#ifdef HAVE_AVX_SUPPORT
float
__fmaf_fma (float x, float y, float z)
{
asm ("vfmadd213ss %3, %2, %0" : "=x" (x) : "0" (x), "x" (y), "xm" (z));
return x;
}
-#endif
#include <config.h>
-#ifdef HAVE_AVX_SUPPORT
#include <math.h>
#include <init-arch.h>
HAS_ARCH_FEATURE (FMA_Usable) ? __fmaf_fma : __fmaf_ia32);
weak_alias (__fmaf, fmaf)
-# define __fmaf __fmaf_ia32
-#endif
+#define __fmaf __fmaf_ia32
#include <sysdeps/ieee754/dbl-64/s_fmaf.c>
$(objpfx)tst-quad1pie: $(objpfx)tst-quadmod1pie.o
$(objpfx)tst-quad2pie: $(objpfx)tst-quadmod2pie.o
-tests += tst-audit3 tst-audit4 tst-audit5 tst-audit10
-ifeq (yes,$(config-cflags-avx))
-tests += tst-audit6 tst-audit7
-endif
+tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7 tst-audit10
tests += tst-split-dynreloc
LDFLAGS-tst-split-dynreloc = -Wl,-T,$(..)sysdeps/x86_64/tst-split-dynreloc.lds
$(objpfx)tst-audit10.out: $(objpfx)tst-auditmod10b.so
tst-audit10-ENV = LD_AUDIT=$(objpfx)tst-auditmod10b.so
-ifeq (yes,$(config-cflags-avx))
AVX-CFLAGS=-mavx
ifeq (yes,$(config-cflags-novzeroupper))
AVX-CFLAGS+=-mno-vzeroupper
CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS)
CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
-endif
ifeq (yes,$(config-cflags-avx512))
AVX512-CFLAGS = -mavx512f
CFLAGS-tst-audit10.c += $(AVX512-CFLAGS)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX support" >&5
-$as_echo_n "checking for AVX support... " >&6; }
-if ${libc_cv_cc_avx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if { ac_try='${CC-cc} -mavx -xc /dev/null -S -o /dev/null'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- libc_cv_cc_avx=yes
-else
- libc_cv_cc_avx=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_avx" >&5
-$as_echo "$libc_cv_cc_avx" >&6; }
-if test $libc_cv_cc_avx = yes; then
- $as_echo "#define HAVE_AVX_SUPPORT 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-config-cflags-avx = $libc_cv_cc_avx"
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX512 support in assembler" >&5
$as_echo_n "checking for AVX512 support in assembler... " >&6; }
if ${libc_cv_asm_avx512+:} false; then :
config_vars="$config_vars
config-cflags-avx512 = $libc_cv_cc_avx512"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX encoding of SSE instructions" >&5
-$as_echo_n "checking for AVX encoding of SSE instructions... " >&6; }
-if ${libc_cv_cc_sse2avx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if { ac_try='${CC-cc} -msse2avx -xc /dev/null -S -o /dev/null'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- libc_cv_cc_sse2avx=yes
-else
- libc_cv_cc_sse2avx=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_sse2avx" >&5
-$as_echo "$libc_cv_cc_sse2avx" >&6; }
-if test $libc_cv_cc_sse2avx = yes; then
- $as_echo "#define HAVE_SSE2AVX_SUPPORT 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-config-cflags-sse2avx = $libc_cv_cc_sse2avx"
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FMA4 support" >&5
$as_echo_n "checking for FMA4 support... " >&6; }
if ${libc_cv_cc_fma4+:} false; then :
[AC_MSG_ERROR([gcc must provide the <cpuid.h> header])],
[/* No default includes. */])
-dnl Check if -mavx works.
-AC_CACHE_CHECK(for AVX support, libc_cv_cc_avx, [dnl
-LIBC_TRY_CC_OPTION([-mavx], [libc_cv_cc_avx=yes], [libc_cv_cc_avx=no])
-])
-if test $libc_cv_cc_avx = yes; then
- AC_DEFINE(HAVE_AVX_SUPPORT)
-fi
-LIBC_CONFIG_VAR([config-cflags-avx], [$libc_cv_cc_avx])
-
dnl Check if asm supports AVX512.
AC_CACHE_CHECK(for AVX512 support in assembler, libc_cv_asm_avx512, [dnl
cat > conftest.s <<\EOF
fi
LIBC_CONFIG_VAR([config-cflags-avx512], [$libc_cv_cc_avx512])
-dnl Check if -msse2avx works.
-AC_CACHE_CHECK(for AVX encoding of SSE instructions, libc_cv_cc_sse2avx, [dnl
-LIBC_TRY_CC_OPTION([-msse2avx],
- [libc_cv_cc_sse2avx=yes],
- [libc_cv_cc_sse2avx=no])
-])
-if test $libc_cv_cc_sse2avx = yes; then
- AC_DEFINE(HAVE_SSE2AVX_SUPPORT)
-fi
-LIBC_CONFIG_VAR([config-cflags-sse2avx], [$libc_cv_cc_sse2avx])
-
dnl Check if -mfma4 works.
AC_CACHE_CHECK(for FMA4 support, libc_cv_cc_fma4, [dnl
LIBC_TRY_CC_OPTION([-mfma4], [libc_cv_cc_fma4=yes], [libc_cv_cc_fma4=no])
/* Actively align the La_x86_64_regs structure. */
and $-VEC_SIZE, %RSP_LP
-# if defined HAVE_AVX_SUPPORT || defined HAVE_AVX512_ASM_SUPPORT
/* sizeof(La_x86_64_regs). Need extra space for 8 SSE registers
to detect if any xmm0-xmm7 registers are changed by audit
module. */
sub $(LR_SIZE + XMM_SIZE*8), %RSP_LP
-# else
- sub $LR_SIZE, %RSP_LP # sizeof(La_x86_64_regs)
-# endif
movq %rsp, 24(%rbx)
/* Fill the La_x86_64_regs structure. */
CFLAGS-s_tan-fma4.c = -mfma4
endif
-ifeq ($(config-cflags-sse2avx),yes)
libm-sysdep_routines += e_exp-avx e_log-avx s_atan-avx \
e_atan2-avx s_sin-avx s_tan-avx \
mplog-avx mpa-avx slowexp-avx \
CFLAGS-slowexp-avx.c = -msse2avx -DSSE2AVX
CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX
endif
-endif
ifeq ($(subdir),mathvec)
libmvec-sysdep_routines += svml_d_cos2_core_sse4 svml_d_cos4_core_avx2 \
-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
-# include <init-arch.h>
-# include <math.h>
-# include <math_private.h>
+#include <init-arch.h>
+#include <math.h>
+#include <math_private.h>
extern double __ieee754_atan2_sse2 (double, double);
extern double __ieee754_atan2_avx (double, double);
-# ifdef HAVE_FMA4_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
extern double __ieee754_atan2_fma4 (double, double);
-# else
-# undef HAS_ARCH_FEATURE
-# define HAS_ARCH_FEATURE(feature) 0
-# define __ieee754_atan2_fma4 ((void *) 0)
-# endif
+#else
+# undef HAS_ARCH_FEATURE
+# define HAS_ARCH_FEATURE(feature) 0
+# define __ieee754_atan2_fma4 ((void *) 0)
+#endif
libm_ifunc (__ieee754_atan2,
HAS_ARCH_FEATURE (FMA4_Usable) ? __ieee754_atan2_fma4
? __ieee754_atan2_avx : __ieee754_atan2_sse2));
strong_alias (__ieee754_atan2, __atan2_finite)
-# define __ieee754_atan2 __ieee754_atan2_sse2
-#endif
+#define __ieee754_atan2 __ieee754_atan2_sse2
#include <sysdeps/ieee754/dbl-64/e_atan2.c>
-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
-# include <init-arch.h>
-# include <math.h>
-# include <math_private.h>
+#include <init-arch.h>
+#include <math.h>
+#include <math_private.h>
extern double __ieee754_exp_sse2 (double);
extern double __ieee754_exp_avx (double);
-# ifdef HAVE_FMA4_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
extern double __ieee754_exp_fma4 (double);
-# else
-# undef HAS_ARCH_FEATURE
-# define HAS_ARCH_FEATURE(feature) 0
-# define __ieee754_exp_fma4 ((void *) 0)
-# endif
+#else
+# undef HAS_ARCH_FEATURE
+# define HAS_ARCH_FEATURE(feature) 0
+# define __ieee754_exp_fma4 ((void *) 0)
+#endif
libm_ifunc (__ieee754_exp,
HAS_ARCH_FEATURE (FMA4_Usable) ? __ieee754_exp_fma4
? __ieee754_exp_avx : __ieee754_exp_sse2));
strong_alias (__ieee754_exp, __exp_finite)
-# define __ieee754_exp __ieee754_exp_sse2
-#endif
+#define __ieee754_exp __ieee754_exp_sse2
#include <sysdeps/ieee754/dbl-64/e_exp.c>
-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
-# include <init-arch.h>
-# include <math.h>
-# include <math_private.h>
+#include <init-arch.h>
+#include <math.h>
+#include <math_private.h>
extern double __ieee754_log_sse2 (double);
extern double __ieee754_log_avx (double);
-# ifdef HAVE_FMA4_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
extern double __ieee754_log_fma4 (double);
-# else
-# undef HAS_ARCH_FEATURE
-# define HAS_ARCH_FEATURE(feature) 0
-# define __ieee754_log_fma4 ((void *) 0)
-# endif
+#else
+# undef HAS_ARCH_FEATURE
+# define HAS_ARCH_FEATURE(feature) 0
+# define __ieee754_log_fma4 ((void *) 0)
+#endif
libm_ifunc (__ieee754_log,
HAS_ARCH_FEATURE (FMA4_Usable) ? __ieee754_log_fma4
? __ieee754_log_avx : __ieee754_log_sse2));
strong_alias (__ieee754_log, __log_finite)
-# define __ieee754_log __ieee754_log_sse2
-#endif
+#define __ieee754_log __ieee754_log_sse2
#include <sysdeps/ieee754/dbl-64/e_log.c>
-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
-# include <init-arch.h>
-# include <math.h>
+#include <init-arch.h>
+#include <math.h>
extern double __atan_sse2 (double);
extern double __atan_avx (double);
-# ifdef HAVE_FMA4_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
extern double __atan_fma4 (double);
-# else
-# undef HAS_ARCH_FEATURE
-# define HAS_ARCH_FEATURE(feature) 0
-# define __atan_fma4 ((void *) 0)
-# endif
+#else
+# undef HAS_ARCH_FEATURE
+# define HAS_ARCH_FEATURE(feature) 0
+# define __atan_fma4 ((void *) 0)
+#endif
libm_ifunc (atan, (HAS_ARCH_FEATURE (FMA4_Usable) ? __atan_fma4 :
HAS_ARCH_FEATURE (AVX_Usable)
? __atan_avx : __atan_sse2));
-# define atan __atan_sse2
-#endif
+#define atan __atan_sse2
#include <sysdeps/ieee754/dbl-64/s_atan.c>
#include <math.h>
#include <init-arch.h>
-#ifdef HAVE_AVX_SUPPORT
-
extern double __fma_sse2 (double x, double y, double z) attribute_hidden;
}
-# ifdef HAVE_FMA4_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
static double
__fma_fma4 (double x, double y, double z)
{
asm ("vfmaddsd %3, %2, %1, %0" : "=x" (x) : "x" (x), "x" (y), "x" (z));
return x;
}
-# else
-# undef HAS_ARCH_FEATURE
-# define HAS_ARCH_FEATURE(feature) 0
-# define __fma_fma4 ((void *) 0)
-# endif
+#else
+# undef HAS_ARCH_FEATURE
+# define HAS_ARCH_FEATURE(feature) 0
+# define __fma_fma4 ((void *) 0)
+#endif
libm_ifunc (__fma, HAS_ARCH_FEATURE (FMA_Usable)
? __fma_fma4 : __fma_sse2));
weak_alias (__fma, fma)
-# define __fma __fma_sse2
-#endif
+#define __fma __fma_sse2
#include <sysdeps/ieee754/dbl-64/s_fma.c>
#include <math.h>
#include <init-arch.h>
-#ifdef HAVE_AVX_SUPPORT
-
extern float __fmaf_sse2 (float x, float y, float z) attribute_hidden;
}
-# ifdef HAVE_FMA4_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
static float
__fmaf_fma4 (float x, float y, float z)
{
asm ("vfmaddss %3, %2, %1, %0" : "=x" (x) : "x" (x), "x" (y), "x" (z));
return x;
}
-# else
-# undef HAS_ARCH_FEATURE
-# define HAS_ARCH_FEATURE(feature) 0
-# define __fmaf_fma4 ((void *) 0)
-# endif
+#else
+# undef HAS_ARCH_FEATURE
+# define HAS_ARCH_FEATURE(feature) 0
+# define __fmaf_fma4 ((void *) 0)
+#endif
libm_ifunc (__fmaf, HAS_ARCH_FEATURE (FMA_Usable)
? __fmaf_fma4 : __fmaf_sse2));
weak_alias (__fmaf, fmaf)
-# define __fmaf __fmaf_sse2
-#endif
+#define __fmaf __fmaf_sse2
#include <sysdeps/ieee754/dbl-64/s_fmaf.c>
-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
-# include <init-arch.h>
-# include <math.h>
-# undef NAN
+#include <init-arch.h>
+#include <math.h>
+#undef NAN
extern double __cos_sse2 (double);
extern double __sin_sse2 (double);
extern double __cos_avx (double);
extern double __sin_avx (double);
-# ifdef HAVE_FMA4_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
extern double __cos_fma4 (double);
extern double __sin_fma4 (double);
-# else
-# undef HAS_ARCH_FEATURE
-# define HAS_ARCH_FEATURE(feature) 0
-# define __cos_fma4 ((void *) 0)
-# define __sin_fma4 ((void *) 0)
-# endif
+#else
+# undef HAS_ARCH_FEATURE
+# define HAS_ARCH_FEATURE(feature) 0
+# define __cos_fma4 ((void *) 0)
+# define __sin_fma4 ((void *) 0)
+#endif
libm_ifunc (__cos, (HAS_ARCH_FEATURE (FMA4_Usable) ? __cos_fma4 :
HAS_ARCH_FEATURE (AVX_Usable)
? __sin_avx : __sin_sse2));
weak_alias (__sin, sin)
-# define __cos __cos_sse2
-# define __sin __sin_sse2
-#endif
+#define __cos __cos_sse2
+#define __sin __sin_sse2
#include <sysdeps/ieee754/dbl-64/s_sin.c>
-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
-# include <init-arch.h>
-# include <math.h>
+#include <init-arch.h>
+#include <math.h>
extern double __tan_sse2 (double);
extern double __tan_avx (double);
-# ifdef HAVE_FMA4_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
extern double __tan_fma4 (double);
-# else
-# undef HAS_ARCH_FEATURE
-# define HAS_ARCH_FEATURE(feature) 0
-# define __tan_fma4 ((void *) 0)
-# endif
+#else
+# undef HAS_ARCH_FEATURE
+# define HAS_ARCH_FEATURE(feature) 0
+# define __tan_fma4 ((void *) 0)
+#endif
libm_ifunc (tan, (HAS_ARCH_FEATURE (FMA4_Usable) ? __tan_fma4 :
HAS_ARCH_FEATURE (AVX_Usable)
? __tan_avx : __tan_sse2));
-# define tan __tan_sse2
-#endif
+#define tan __tan_sse2
#include <sysdeps/ieee754/dbl-64/s_tan.c>
ENTRY(__strcasecmp)
.type __strcasecmp, @gnu_indirect_function
LOAD_RTLD_GLOBAL_RO_RDX
-# ifdef HAVE_AVX_SUPPORT
leaq __strcasecmp_avx(%rip), %rax
HAS_ARCH_FEATURE (AVX_Usable)
jnz 3f
-# endif
HAS_ARCH_FEATURE (Slow_SSE4_2)
jnz 2f
leaq __strcasecmp_sse42(%rip), %rax
ENTRY(__strncasecmp)
.type __strncasecmp, @gnu_indirect_function
LOAD_RTLD_GLOBAL_RO_RDX
-# ifdef HAVE_AVX_SUPPORT
leaq __strncasecmp_avx(%rip), %rax
HAS_ARCH_FEATURE (AVX_Usable)
jnz 3f
-# endif
HAS_ARCH_FEATURE (Slow_SSE4_2)
jnz 2f
leaq __strncasecmp_sse42(%rip), %rax
# include "strcmp-sse42.S"
-# ifdef HAVE_AVX_SUPPORT
-# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
-# define LABEL(l) .L##l##_avx
-# define GLABEL(l) l##_avx
-# define USE_AVX 1
-# undef STRCMP_SSE42
-# define STRCMP_SSE42 STRCMP_AVX
-# define SECTION avx
-# include "strcmp-sse42.S"
-# endif
+# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# define LABEL(l) .L##l##_avx
+# define GLABEL(l) l##_avx
+# define USE_AVX 1
+# undef STRCMP_SSE42
+# define STRCMP_SSE42 STRCMP_AVX
+# define SECTION avx
+# include "strcmp-sse42.S"
# endif