]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/i386/i686/fpu/multiarch/e_expf.c
Update copyright dates with scripts/update-copyrights
[thirdparty/glibc.git] / sysdeps / i386 / i686 / fpu / multiarch / e_expf.c
index 65858a3113ce63fa43c5fce48f3e40d22dc790f3..dfecddeb531ece4d995eded13bea3fa004fbaed2 100644 (file)
@@ -1,15 +1,42 @@
-#include <init-arch.h>
+/* Multiple versions of expf.
+   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
 
-extern double __ieee754_expf_sse2 (double);
-extern double __ieee754_expf_ia32 (double);
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
-double __ieee754_expf (double);
-libm_ifunc (__ieee754_expf,
-           HAS_SSE2 ? __ieee754_expf_sse2 : __ieee754_expf_ia32);
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
 
-extern double __expf_finite_sse2 (double);
-extern double __expf_finite_ia32 (double);
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
-double __expf_finite (double);
-libm_ifunc (__expf_finite,
-           HAS_SSE2 ? __expf_finite_sse2 : __expf_finite_ia32);
+extern float __redirect_expf (float);
+
+#define SYMBOL_NAME expf
+#include "ifunc-sse2.h"
+#include <libm-alias-finite.h>
+
+libc_ifunc_redirected (__redirect_expf, __expf, IFUNC_SELECTOR ());
+
+#include <libm-alias-float.h>
+#ifdef SHARED
+__hidden_ver1 (__expf_ia32, __GI___expf, __redirect_expf)
+  __attribute__ ((visibility ("hidden"))) __THROW;
+
+versioned_symbol (libm, __expf, expf, GLIBC_2_27);
+libm_alias_float_other (__exp, exp)
+#else
+libm_alias_float (__exp, exp)
+#endif
+
+strong_alias (__expf, __ieee754_expf)
+libm_alias_finite (__ieee754_expf, __expf)
+
+#define __expf __expf_ia32
+#include <sysdeps/ieee754/flt-32/e_expf.c>