diff mbox

[x86_64,BZ,#20033] Use calls to finite scalar versions in vector log, pow, exp.

Message ID CAMXFM3tMZp58=LeYT+Dd6hCCjrPm4eK-GUMxQkM4yCjT2-3dkg@mail.gmail.com
State New, archived
Headers show

Commit Message

Andrew Senkevich July 25, 2016, 6:30 p.m. UTC
2016-07-20 19:40 GMT+03:00 Joseph Myers <joseph@codesourcery.com>:
> On Fri, 8 Jul 2016, Andrew Senkevich wrote:
>
>> diff --git a/math/libm-test.inc b/math/libm-test.inc
>> index 4ac7a0c..7734333 100644
>> --- a/math/libm-test.inc
>> +++ b/math/libm-test.inc
>> @@ -10631,10 +10631,12 @@ nexttoward_test (void)
>>
>>  static const struct test_ff_f_data pow_test_data[] =
>>    {
>> +#if !(defined __x86_64__ && defined __FAST_MATH__)
>>      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),
>> +#endif
>
> No, such architecture conditionals on individual tests are not
> appropriate.  Maybe you need a NO_TEST_VECTOR handled like NO_TEST_INLINE
> in enable_test.

Is patch below Ok for trunk?



--
WBR,
Andrew

Comments

Joseph Myers July 25, 2016, 8:19 p.m. UTC | #1
On Mon, 25 Jul 2016, Andrew Senkevich wrote:

> > No, such architecture conditionals on individual tests are not
> > appropriate.  Maybe you need a NO_TEST_VECTOR handled like NO_TEST_INLINE
> > in enable_test.
> 
> Is patch below Ok for trunk?

No, I said handled like NO_TEST_INLINE.  Exactly like NO_TEST_INLINE.  No 
architecture conditionals, no #if, just an "if" conditional exactly 
corresponding to how NO_TEST_INLINE and NON_FINITE are handled (the 
NON_FINITE if is actually better to follow since it follows the glibc 
convention of avoiding implicit boolean conversion).
diff mbox

Patch

diff --git a/math/libm-test.inc b/math/libm-test.inc
index 4ac7a0c..18e3496
--- 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_VECTOR                 0x100000

 #define __CONCATX(a,b) __CONCAT(a,b)

@@ -1056,6 +1057,12 @@  enable_test (int exceptions)
     return 0;
   if (!SNAN_TESTS (FLOAT) && (exceptions & TEST_SNAN) != 0)
     return 0;
+
+#if defined __x86_64__ && defined __FAST_MATH__
+  if (exceptions & NO_TEST_VECTOR)
+    return 0;
+#endif
+
   return 1;
 }

@@ -10631,10 +10638,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_VECTOR),
+    TEST_ff_f (pow, -qnan_value, 0, 1, ERRNO_UNCHANGED|NO_TEST_VECTOR),
+    TEST_ff_f (pow, qnan_value, minus_zero, 1, ERRNO_UNCHANGED|NO_TEST_VECTOR),
+    TEST_ff_f (pow, -qnan_value, minus_zero, 1,
ERRNO_UNCHANGED|NO_TEST_VECTOR),

     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 9a77959..1e119e2 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 2a35fe3..f350800 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 ea84091..18fb059 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 6795972..6787699 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 267dae0..8d21e5e 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 62854bb..cf2da9d 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 699f74e..c642f94 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 35ba076..8ad9a57 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 c6b6474..026feee 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 18b8a5e..42bd670 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 d3db509..59933da 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 a80a9ec..54f7500 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 c714258..046430e 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 22310f1..b989375 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 b69d53f..6d6e97f 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 8b0c256..0d8c819 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 04b4e3d..b87ad27 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 bfe2229..b094f8e 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 9e51103..ecfaf12 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 8ea40fe..b3530cd 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 b25515c..593aaf6 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 65b5d1a..3901564 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 195f328..fa13933 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 88fae60..7bb5b3d 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