about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrew Senkevich <andrew.senkevich@intel.com>2016-08-02 16:35:25 +0300
committerAndrew Senkevich <andrew.senkevich@intel.com>2016-08-02 16:35:25 +0300
commit533f9bebf969060e64c66681e275c03d6e49fcc9 (patch)
tree500694859540a9f7583760f1a99af70044ca726b
parentf88aab5d508c13ae4a88124e65773d7d827cd47b (diff)
downloadglibc-533f9bebf969060e64c66681e275c03d6e49fcc9.tar.gz
glibc-533f9bebf969060e64c66681e275c03d6e49fcc9.tar.xz
glibc-533f9bebf969060e64c66681e275c03d6e49fcc9.zip
x86_64: Call finite scalar versions in vectorized log, pow, exp (bz #20033).
Vector math functions require -ffast-math which sets -ffinite-math-only,
so it is needed to call finite scalar versions (which are called from
vector functions in some cases).

Since finite version of pow() returns qNaN instead of 1.0 for several
inputs, those inputs are excluded for tests of vector math functions.

    [BZ #20033]
    * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S: Call
    finite version.
    * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/svml_d_exp2_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_d_log2_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_d_pow2_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_s_expf4_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_s_logf4_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_s_powf4_core.S: Likewise.
    * math/libm-test.inc (pow_test_data): Exclude tests for qNaN
    in power zero.
-rw-r--r--ChangeLog31
-rw-r--r--math/libm-test.inc12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow2_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf4_core.S2
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf4_core.S2
26 files changed, 93 insertions, 58 deletions
diff --git a/ChangeLog b/ChangeLog
index c8ea74031a..b5fd436ba0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+2016-08-02  Andrew Senkevich  <andrew.senkevich@intel.com>
+
+	[BZ #20033]
+	* sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S: Call
+	finite version.
+	* sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S: Likewise.
+	* sysdeps/x86_64/fpu/svml_d_exp2_core.S: Likewise.
+	* sysdeps/x86_64/fpu/svml_d_log2_core.S: Likewise.
+	* sysdeps/x86_64/fpu/svml_d_pow2_core.S: Likewise.
+	* sysdeps/x86_64/fpu/svml_s_expf4_core.S: Likewise.
+	* sysdeps/x86_64/fpu/svml_s_logf4_core.S: Likewise.
+	* sysdeps/x86_64/fpu/svml_s_powf4_core.S: Likewise.
+	* math/libm-test.inc (pow_test_data): Exclude tests for qNaN
+	in zero power.
+
 2016-08-02  Florian Weimer  <fweimer@redhat.com>
 
 	[BZ #20370]
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 4ac7a0c80d..117057c315 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -179,6 +179,7 @@
 #define IGNORE_RESULT			0x20000
 #define NON_FINITE			0x40000
 #define TEST_SNAN			0x80000
+#define NO_TEST_MATHVEC			0x100000
 
 #define __CONCATX(a,b) __CONCAT(a,b)
 
@@ -1056,6 +1057,9 @@ enable_test (int exceptions)
     return 0;
   if (!SNAN_TESTS (FLOAT) && (exceptions & TEST_SNAN) != 0)
     return 0;
+  if (TEST_MATHVEC && (exceptions & NO_TEST_MATHVEC) != 0)
+    return 0;
+
   return 1;
 }
 
@@ -10631,10 +10635,10 @@ nexttoward_test (void)
 
 static const struct test_ff_f_data pow_test_data[] =
   {
-    TEST_ff_f (pow, qnan_value, 0, 1, ERRNO_UNCHANGED),
-    TEST_ff_f (pow, -qnan_value, 0, 1, ERRNO_UNCHANGED),
-    TEST_ff_f (pow, qnan_value, minus_zero, 1, ERRNO_UNCHANGED),
-    TEST_ff_f (pow, -qnan_value, minus_zero, 1, ERRNO_UNCHANGED),
+    TEST_ff_f (pow, qnan_value, 0, 1, ERRNO_UNCHANGED|NO_TEST_MATHVEC),
+    TEST_ff_f (pow, -qnan_value, 0, 1, ERRNO_UNCHANGED|NO_TEST_MATHVEC),
+    TEST_ff_f (pow, qnan_value, minus_zero, 1, ERRNO_UNCHANGED|NO_TEST_MATHVEC),
+    TEST_ff_f (pow, -qnan_value, minus_zero, 1, ERRNO_UNCHANGED|NO_TEST_MATHVEC),
 
     TEST_ff_f (pow, 1.1L, plus_infty, plus_infty, ERRNO_UNCHANGED|NO_TEST_INLINE),
     TEST_ff_f (pow, plus_infty, plus_infty, plus_infty, ERRNO_UNCHANGED|NO_TEST_INLINE),
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
index 9a779593cd..1e119e24a6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
@@ -207,7 +207,7 @@ ENTRY (_ZGVbN2v_exp_sse4)
         shlq      $4, %r15
         movsd     200(%rsp,%r15), %xmm0
 
-        call      JUMPTARGET(exp)
+        call      JUMPTARGET(__exp_finite)
 
         movsd     %xmm0, 264(%rsp,%r15)
         jmp       .LBL_1_8
@@ -217,7 +217,7 @@ ENTRY (_ZGVbN2v_exp_sse4)
         shlq      $4, %r15
         movsd     192(%rsp,%r15), %xmm0
 
-        call      JUMPTARGET(exp)
+        call      JUMPTARGET(__exp_finite)
 
         movsd     %xmm0, 256(%rsp,%r15)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
index 2a35fe3846..f350800dcb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
@@ -193,7 +193,7 @@ ENTRY (_ZGVdN4v_exp_avx2)
         vmovsd    328(%rsp,%r15), %xmm0
         vzeroupper
 
-        call      JUMPTARGET(exp)
+        call      JUMPTARGET(__exp_finite)
 
         vmovsd    %xmm0, 392(%rsp,%r15)
         jmp       .LBL_1_8
@@ -204,7 +204,7 @@ ENTRY (_ZGVdN4v_exp_avx2)
         vmovsd    320(%rsp,%r15), %xmm0
         vzeroupper
 
-        call      JUMPTARGET(exp)
+        call      JUMPTARGET(__exp_finite)
 
         vmovsd    %xmm0, 384(%rsp,%r15)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
index ea840911e7..18fb059a6f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
@@ -223,7 +223,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
         movzbl    %r12b, %r15d
         shlq      $4, %r15
         vmovsd    1160(%rsp,%r15), %xmm0
-        call      JUMPTARGET(exp)
+        call      JUMPTARGET(__exp_finite)
         vmovsd    %xmm0, 1224(%rsp,%r15)
         jmp       .LBL_1_8
 
@@ -231,7 +231,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
         movzbl    %r12b, %r15d
         shlq      $4, %r15
         vmovsd    1152(%rsp,%r15), %xmm0
-        call      JUMPTARGET(exp)
+        call      JUMPTARGET(__exp_finite)
         vmovsd    %xmm0, 1216(%rsp,%r15)
         jmp       .LBL_1_7
 #endif
@@ -438,7 +438,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
         vmovsd    1160(%rsp,%r15), %xmm0
         vzeroupper
         vmovsd    1160(%rsp,%r15), %xmm0
-        call      JUMPTARGET(exp)
+        call      JUMPTARGET(__exp_finite)
         vmovsd    %xmm0, 1224(%rsp,%r15)
         jmp       .LBL_2_8
 
@@ -448,7 +448,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
         vmovsd    1152(%rsp,%r15), %xmm0
         vzeroupper
         vmovsd    1152(%rsp,%r15), %xmm0
-        call      JUMPTARGET(exp)
+        call      JUMPTARGET(__exp_finite)
         vmovsd    %xmm0, 1216(%rsp,%r15)
         jmp       .LBL_2_7
 
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
index 67959729d7..67876997c8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
@@ -211,7 +211,7 @@ ENTRY (_ZGVbN2v_log_sse4)
         shlq      $4, %r15
         movsd     200(%rsp,%r15), %xmm0
 
-        call      JUMPTARGET(log)
+        call      JUMPTARGET(__log_finite)
 
         movsd     %xmm0, 264(%rsp,%r15)
         jmp       .LBL_1_8
@@ -221,7 +221,7 @@ ENTRY (_ZGVbN2v_log_sse4)
         shlq      $4, %r15
         movsd     192(%rsp,%r15), %xmm0
 
-        call      JUMPTARGET(log)
+        call      JUMPTARGET(__log_finite)
 
         movsd     %xmm0, 256(%rsp,%r15)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
index 267dae0a1f..8d21e5e94f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
@@ -191,7 +191,7 @@ ENTRY (_ZGVdN4v_log_avx2)
         vmovsd    328(%rsp,%r15), %xmm0
         vzeroupper
 
-        call      JUMPTARGET(log)
+        call      JUMPTARGET(__log_finite)
 
         vmovsd    %xmm0, 392(%rsp,%r15)
         jmp       .LBL_1_8
@@ -202,7 +202,7 @@ ENTRY (_ZGVdN4v_log_avx2)
         vmovsd    320(%rsp,%r15), %xmm0
         vzeroupper
 
-        call      JUMPTARGET(log)
+        call      JUMPTARGET(__log_finite)
 
         vmovsd    %xmm0, 384(%rsp,%r15)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
index 62854bb07d..cf2da9d769 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
@@ -222,7 +222,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
         movzbl    %r12b, %r15d
         shlq      $4, %r15
         vmovsd    1160(%rsp,%r15), %xmm0
-        call      JUMPTARGET(log)
+        call      JUMPTARGET(__log_finite)
         vmovsd    %xmm0, 1224(%rsp,%r15)
         jmp       .LBL_1_8
 
@@ -230,7 +230,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
         movzbl    %r12b, %r15d
         shlq      $4, %r15
         vmovsd    1152(%rsp,%r15), %xmm0
-        call      JUMPTARGET(log)
+        call      JUMPTARGET(__log_finite)
         vmovsd    %xmm0, 1216(%rsp,%r15)
         jmp       .LBL_1_7
 #endif
@@ -443,7 +443,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
         vzeroupper
         vmovsd    1160(%rsp,%r15), %xmm0
 
-        call      JUMPTARGET(log)
+        call      JUMPTARGET(__log_finite)
 
         vmovsd    %xmm0, 1224(%rsp,%r15)
         jmp       .LBL_2_8
@@ -455,7 +455,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
         vzeroupper
         vmovsd    1152(%rsp,%r15), %xmm0
 
-        call      JUMPTARGET(log)
+        call      JUMPTARGET(__log_finite)
 
         vmovsd    %xmm0, 1216(%rsp,%r15)
         jmp       .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
index 699f74ed44..c642f940cc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
@@ -413,7 +413,7 @@ ENTRY (_ZGVbN2vv_pow_sse4)
         movsd     72(%rsp,%r15), %xmm0
         movsd     136(%rsp,%r15), %xmm1
 
-        call      JUMPTARGET(pow)
+        call      JUMPTARGET(__pow_finite)
 
         movsd     %xmm0, 200(%rsp,%r15)
         jmp       .LBL_1_8
@@ -424,7 +424,7 @@ ENTRY (_ZGVbN2vv_pow_sse4)
         movsd     64(%rsp,%r15), %xmm0
         movsd     128(%rsp,%r15), %xmm1
 
-        call      JUMPTARGET(pow)
+        call      JUMPTARGET(__pow_finite)
 
         movsd     %xmm0, 192(%rsp,%r15)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
index 35ba076caa..8ad9a57543 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
@@ -367,7 +367,7 @@ ENTRY (_ZGVdN4vv_pow_avx2)
         vmovsd    264(%rsp,%r15), %xmm1
         vzeroupper
 
-        call      JUMPTARGET(pow)
+        call      JUMPTARGET(__pow_finite)
 
         vmovsd    %xmm0, 328(%rsp,%r15)
         jmp       .LBL_1_8
@@ -379,7 +379,7 @@ ENTRY (_ZGVdN4vv_pow_avx2)
         vmovsd    256(%rsp,%r15), %xmm1
         vzeroupper
 
-        call      JUMPTARGET(pow)
+        call      JUMPTARGET(__pow_finite)
 
         vmovsd    %xmm0, 320(%rsp,%r15)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
index c6b6474438..026feee1ca 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
@@ -392,7 +392,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
         shlq      $4, %r15
         vmovsd    1160(%rsp,%r15), %xmm0
         vmovsd    1224(%rsp,%r15), %xmm1
-        call      JUMPTARGET(pow)
+        call      JUMPTARGET(__pow_finite)
         vmovsd    %xmm0, 1288(%rsp,%r15)
         jmp       .LBL_1_8
 
@@ -401,7 +401,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
         shlq      $4, %r15
         vmovsd    1152(%rsp,%r15), %xmm0
         vmovsd    1216(%rsp,%r15), %xmm1
-        call      JUMPTARGET(pow)
+        call      JUMPTARGET(__pow_finite)
         vmovsd    %xmm0, 1280(%rsp,%r15)
         jmp       .LBL_1_7
 
@@ -720,7 +720,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
         vzeroupper
         vmovsd    1160(%rsp,%r15), %xmm0
 
-        call      JUMPTARGET(pow)
+        call      JUMPTARGET(__pow_finite)
 
         vmovsd    %xmm0, 1288(%rsp,%r15)
         jmp       .LBL_2_8
@@ -732,7 +732,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
         vzeroupper
         vmovsd    1152(%rsp,%r15), %xmm0
 
-        call      JUMPTARGET(pow)
+        call      JUMPTARGET(__pow_finite)
 
         vmovsd    %xmm0, 1280(%rsp,%r15)
         jmp       .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
index 18b8a5e3af..42bd67096d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
@@ -212,14 +212,14 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
         cfi_restore_state
         movzbl    %r12b, %r15d
         vmovss    1156(%rsp,%r15,8), %xmm0
-        call      JUMPTARGET(expf)
+        call      JUMPTARGET(__expf_finite)
         vmovss    %xmm0, 1220(%rsp,%r15,8)
         jmp       .LBL_1_8
 
 .LBL_1_12:
         movzbl    %r12b, %r15d
         vmovss    1152(%rsp,%r15,8), %xmm0
-        call      JUMPTARGET(expf)
+        call      JUMPTARGET(__expf_finite)
         vmovss    %xmm0, 1216(%rsp,%r15,8)
         jmp       .LBL_1_7
 
@@ -422,7 +422,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
         vzeroupper
         vmovss    1156(%rsp,%r15,8), %xmm0
 
-        call      JUMPTARGET(expf)
+        call      JUMPTARGET(__expf_finite)
 
         vmovss    %xmm0, 1220(%rsp,%r15,8)
         jmp       .LBL_2_8
@@ -433,7 +433,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
         vzeroupper
         vmovss    1152(%rsp,%r15,8), %xmm0
 
-        call      JUMPTARGET(expf)
+        call      JUMPTARGET(__expf_finite)
 
         vmovss    %xmm0, 1216(%rsp,%r15,8)
         jmp       .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
index d3db509ec4..59933da08b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
@@ -195,7 +195,7 @@ ENTRY (_ZGVbN4v_expf_sse4)
         movzbl    %r12b, %r15d
         movss     196(%rsp,%r15,8), %xmm0
 
-        call      JUMPTARGET(expf)
+        call      JUMPTARGET(__expf_finite)
 
         movss     %xmm0, 260(%rsp,%r15,8)
         jmp       .LBL_1_8
@@ -204,7 +204,7 @@ ENTRY (_ZGVbN4v_expf_sse4)
         movzbl    %r12b, %r15d
         movss     192(%rsp,%r15,8), %xmm0
 
-        call      JUMPTARGET(expf)
+        call      JUMPTARGET(__expf_finite)
 
         movss     %xmm0, 256(%rsp,%r15,8)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
index a80a9ec490..54f7500adb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
@@ -184,7 +184,7 @@ ENTRY(_ZGVdN8v_expf_avx2)
         vmovss    324(%rsp,%r15,8), %xmm0
         vzeroupper
 
-        call      JUMPTARGET(expf)
+        call      JUMPTARGET(__expf_finite)
 
         vmovss    %xmm0, 388(%rsp,%r15,8)
         jmp       .LBL_1_8
@@ -194,7 +194,7 @@ ENTRY(_ZGVdN8v_expf_avx2)
         vmovss    320(%rsp,%r15,8), %xmm0
         vzeroupper
 
-        call      JUMPTARGET(expf)
+        call      JUMPTARGET(__expf_finite)
 
         vmovss    %xmm0, 384(%rsp,%r15,8)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
index c714258244..046430e9bb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
@@ -197,14 +197,14 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
         cfi_restore_state
         movzbl    %r12b, %r15d
         vmovss    1156(%rsp,%r15,8), %xmm0
-        call      JUMPTARGET(logf)
+        call      JUMPTARGET(__logf_finite)
         vmovss    %xmm0, 1220(%rsp,%r15,8)
         jmp       .LBL_1_8
 
 .LBL_1_12:
         movzbl    %r12b, %r15d
         vmovss    1152(%rsp,%r15,8), %xmm0
-        call      JUMPTARGET(logf)
+        call      JUMPTARGET(__logf_finite)
         vmovss    %xmm0, 1216(%rsp,%r15,8)
         jmp       .LBL_1_7
 #endif
@@ -391,7 +391,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
         vzeroupper
         vmovss    1156(%rsp,%r15,8), %xmm0
 
-        call      JUMPTARGET(logf)
+        call      JUMPTARGET(__logf_finite)
 
         vmovss    %xmm0, 1220(%rsp,%r15,8)
         jmp       .LBL_2_8
@@ -402,7 +402,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
         vzeroupper
         vmovss    1152(%rsp,%r15,8), %xmm0
 
-        call      JUMPTARGET(logf)
+        call      JUMPTARGET(__logf_finite)
 
         vmovss    %xmm0, 1216(%rsp,%r15,8)
         jmp       .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
index 22310f1c04..b989375b8e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
@@ -177,7 +177,7 @@ ENTRY (_ZGVbN4v_logf_sse4)
         movzbl    %r12b, %r15d
         movss     196(%rsp,%r15,8), %xmm0
 
-        call      JUMPTARGET(logf)
+        call      JUMPTARGET(__logf_finite)
 
         movss     %xmm0, 260(%rsp,%r15,8)
         jmp       .LBL_1_8
@@ -186,7 +186,7 @@ ENTRY (_ZGVbN4v_logf_sse4)
         movzbl    %r12b, %r15d
         movss     192(%rsp,%r15,8), %xmm0
 
-        call      JUMPTARGET(logf)
+        call      JUMPTARGET(__logf_finite)
 
         movss     %xmm0, 256(%rsp,%r15,8)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
index b69d53f93c..6d6e97f360 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
@@ -166,7 +166,7 @@ ENTRY(_ZGVdN8v_logf_avx2)
         vmovss    324(%rsp,%r15,8), %xmm0
         vzeroupper
 
-        call      JUMPTARGET(logf)
+        call      JUMPTARGET(__logf_finite)
 
         vmovss    %xmm0, 388(%rsp,%r15,8)
         jmp       .LBL_1_8
@@ -176,7 +176,7 @@ ENTRY(_ZGVdN8v_logf_avx2)
         vmovss    320(%rsp,%r15,8), %xmm0
         vzeroupper
 
-        call      JUMPTARGET(logf)
+        call      JUMPTARGET(__logf_finite)
 
         vmovss    %xmm0, 384(%rsp,%r15,8)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
index 8b0c256432..0d8c81978b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
@@ -344,7 +344,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
         movzbl    %r12b, %r15d
         vmovss    1156(%rsp,%r15,8), %xmm0
         vmovss    1220(%rsp,%r15,8), %xmm1
-        call      JUMPTARGET(powf)
+        call      JUMPTARGET(__powf_finite)
         vmovss    %xmm0, 1284(%rsp,%r15,8)
         jmp       .LBL_1_8
 
@@ -352,7 +352,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
         movzbl    %r12b, %r15d
         vmovss    1152(%rsp,%r15,8), %xmm0
         vmovss    1216(%rsp,%r15,8), %xmm1
-        call      JUMPTARGET(powf)
+        call      JUMPTARGET(__powf_finite)
         vmovss    %xmm0, 1280(%rsp,%r15,8)
         jmp       .LBL_1_7
 #endif
@@ -629,7 +629,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
         vmovss    1156(%rsp,%r15,8), %xmm1
         vzeroupper
         vmovss    1092(%rsp,%r15,8), %xmm0
-        call      JUMPTARGET(powf)
+        call      JUMPTARGET(__powf_finite)
         vmovss    %xmm0, 1220(%rsp,%r15,8)
         jmp       .LBL_2_8
 
@@ -638,7 +638,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
         vmovss    1152(%rsp,%r15,8), %xmm1
         vzeroupper
         vmovss    1088(%rsp,%r15,8), %xmm0
-        call      JUMPTARGET(powf)
+        call      JUMPTARGET(__powf_finite)
         vmovss    %xmm0, 1216(%rsp,%r15,8)
         jmp       .LBL_2_7
 #endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
index 04b4e3d1a1..b87ad2742a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
@@ -356,7 +356,7 @@ ENTRY (_ZGVbN4vv_powf_sse4)
         movss     68(%rsp,%r15,8), %xmm0
         movss     132(%rsp,%r15,8), %xmm1
 
-        call      JUMPTARGET(powf)
+        call      JUMPTARGET(__powf_finite)
 
         movss     %xmm0, 196(%rsp,%r15,8)
         jmp       .LBL_1_8
@@ -366,7 +366,7 @@ ENTRY (_ZGVbN4vv_powf_sse4)
         movss     64(%rsp,%r15,8), %xmm0
         movss     128(%rsp,%r15,8), %xmm1
 
-        call      JUMPTARGET(powf)
+        call      JUMPTARGET(__powf_finite)
 
         movss     %xmm0, 192(%rsp,%r15,8)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
index bfe2229348..b094f8ee9b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
@@ -317,7 +317,7 @@ ENTRY(_ZGVdN8vv_powf_avx2)
         vmovss    132(%rsp,%r15,8), %xmm1
         vzeroupper
 
-        call      JUMPTARGET(powf)
+        call      JUMPTARGET(__powf_finite)
 
         vmovss    %xmm0, 196(%rsp,%r15,8)
         jmp       .LBL_1_8
@@ -328,7 +328,7 @@ ENTRY(_ZGVdN8vv_powf_avx2)
         vmovss    128(%rsp,%r15,8), %xmm1
         vzeroupper
 
-        call      JUMPTARGET(powf)
+        call      JUMPTARGET(__powf_finite)
 
         vmovss    %xmm0, 192(%rsp,%r15,8)
         jmp       .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/svml_d_exp2_core.S b/sysdeps/x86_64/fpu/svml_d_exp2_core.S
index 9e511037a1..ecfaf121d0 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp2_core.S
@@ -21,7 +21,7 @@
 
 	.text
 ENTRY (_ZGVbN2v_exp)
-WRAPPER_IMPL_SSE2 exp
+WRAPPER_IMPL_SSE2 __exp_finite
 END (_ZGVbN2v_exp)
 
 #ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_d_log2_core.S b/sysdeps/x86_64/fpu/svml_d_log2_core.S
index 8ea40fee56..b3530cd06b 100644
--- a/sysdeps/x86_64/fpu/svml_d_log2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log2_core.S
@@ -21,7 +21,7 @@
 
 	.text
 ENTRY (_ZGVbN2v_log)
-WRAPPER_IMPL_SSE2 log
+WRAPPER_IMPL_SSE2 __log_finite
 END (_ZGVbN2v_log)
 
 #ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_d_pow2_core.S b/sysdeps/x86_64/fpu/svml_d_pow2_core.S
index b25515c825..593aaf6393 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow2_core.S
@@ -21,7 +21,7 @@
 
 	.text
 ENTRY (_ZGVbN2vv_pow)
-WRAPPER_IMPL_SSE2_ff pow
+WRAPPER_IMPL_SSE2_ff __pow_finite
 END (_ZGVbN2vv_pow)
 
 #ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_s_expf4_core.S b/sysdeps/x86_64/fpu/svml_s_expf4_core.S
index 65b5d1a3ce..3901564ade 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf4_core.S
@@ -22,7 +22,7 @@
 
 	.text
 ENTRY (_ZGVbN4v_expf)
-WRAPPER_IMPL_SSE2 expf
+WRAPPER_IMPL_SSE2 __expf_finite
 END (_ZGVbN4v_expf)
 
 #ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_s_logf4_core.S b/sysdeps/x86_64/fpu/svml_s_logf4_core.S
index 195f328d92..fa13933e88 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf4_core.S
@@ -22,7 +22,7 @@
 
 	.text
 ENTRY (_ZGVbN4v_logf)
-WRAPPER_IMPL_SSE2 logf
+WRAPPER_IMPL_SSE2 __logf_finite
 END (_ZGVbN4v_logf)
 
 #ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_s_powf4_core.S b/sysdeps/x86_64/fpu/svml_s_powf4_core.S
index 88fae60892..7bb5b3d34f 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf4_core.S
@@ -21,7 +21,7 @@
 
 	.text
 ENTRY (_ZGVbN4vv_powf)
-WRAPPER_IMPL_SSE2_ff powf
+WRAPPER_IMPL_SSE2_ff __powf_finite
 END (_ZGVbN4vv_powf)
 
 #ifndef USE_MULTIARCH