]> git.ipfire.org Git - thirdparty/glibc.git/commit - sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
x86_64: Call finite scalar versions in vectorized log, pow, exp (bz #20033).
authorAndrew Senkevich <andrew.senkevich@intel.com>
Tue, 2 Aug 2016 13:35:25 +0000 (16:35 +0300)
committerAndrew Senkevich <andrew.senkevich@intel.com>
Tue, 2 Aug 2016 13:35:25 +0000 (16:35 +0300)
commit533f9bebf969060e64c66681e275c03d6e49fcc9
tree500694859540a9f7583760f1a99af70044ca726b
parentf88aab5d508c13ae4a88124e65773d7d827cd47b
x86_64: Call finite scalar versions in vectorized log, pow, exp (bz #20033).

Vector math functions require -ffast-math which sets -ffinite-math-only,
so it is needed to call finite scalar versions (which are called from
vector functions in some cases).

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

    [BZ #20033]
    * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S: Call
    finite version.
    * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S: Likewise.
    * sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S: Likewise.
    * sysdeps/x86_64/fpu/svml_d_exp2_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_d_log2_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_d_pow2_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_s_expf4_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_s_logf4_core.S: Likewise.
    * sysdeps/x86_64/fpu/svml_s_powf4_core.S: Likewise.
    * math/libm-test.inc (pow_test_data): Exclude tests for qNaN
    in power zero.
26 files changed:
ChangeLog
math/libm-test.inc
sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
sysdeps/x86_64/fpu/svml_d_exp2_core.S
sysdeps/x86_64/fpu/svml_d_log2_core.S
sysdeps/x86_64/fpu/svml_d_pow2_core.S
sysdeps/x86_64/fpu/svml_s_expf4_core.S
sysdeps/x86_64/fpu/svml_s_logf4_core.S
sysdeps/x86_64/fpu/svml_s_powf4_core.S