[x86_64,BZ,#20033] Use calls to finite scalar versions in vector log, pow, exp.
Commit Message
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
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
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.
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.
@@ -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),
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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