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

Message ID CAMXFM3sd6tPCyqxhKHERWtKswc5AYqyvc_mYjt7=miAuK5jJ0Q@mail.gmail.com
State New, archived
Headers

Commit Message

Andrew Senkevich July 8, 2016, 12:10 p.m. UTC
  Hi,

vector math functions require to have -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 set under condition which is false for tests
of vector math functions.

Is it Ok for commit?

ChangeLog:

        [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.



--
WBR,
Andrew
  

Comments

Andrew Senkevich July 8, 2016, 2:12 p.m. UTC | #1
2016-07-08 15:10 GMT+03:00 Andrew Senkevich <andrew.n.senkevich@gmail.com>:
> Hi,
>
> vector math functions require to have -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 set under condition which is false for tests
> of vector math functions.
>
> Is it Ok for commit?
>
> ChangeLog:
>
>         [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.
>
> 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
>
>      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

I am usually got OK from Joseph to commit, who else can approve patch
while Joseph is absent?


--
WBR,
Andrew
  
Adhemerval Zanella July 8, 2016, 4:19 p.m. UTC | #2
On 08/07/2016 11:12, Andrew Senkevich wrote:
> 2016-07-08 15:10 GMT+03:00 Andrew Senkevich <andrew.n.senkevich@gmail.com>:
>> Hi,
>>
>> vector math functions require to have -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 set under condition which is false for tests
>> of vector math functions.
>>
>> Is it Ok for commit?
>>
>> ChangeLog:
>>
>>         [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.
>>
>> 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
>>
>>      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
> 
> I am usually got OK from Joseph to commit, who else can approve patch
> while Joseph is absent?

I would say x86 maintainer as I suggested in my previous release blocker
discussion.
  
Joseph Myers July 20, 2016, 4:40 p.m. UTC | #3
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.
  

Patch

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

     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