about summary refs log tree commit diff
path: root/math/cargl.c
diff options
context:
space:
mode:
authorShawn Landden <shawn@git.icu>2019-06-26 10:52:45 -0400
committerTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>2020-02-19 17:29:28 -0300
commit01d11f7eb989fe95c635fe3fcf76f68985faa9e0 (patch)
tree37d54d1b00e3ec7a9bb4f6502cfead07be36b2af /math/cargl.c
parent4068846e1e364b2441b93cf3d731a6599596726a (diff)
downloadglibc-01d11f7eb989fe95c635fe3fcf76f68985faa9e0.tar.gz
glibc-01d11f7eb989fe95c635fe3fcf76f68985faa9e0.tar.xz
glibc-01d11f7eb989fe95c635fe3fcf76f68985faa9e0.zip
PPC64: Add libmvec SIMD double-precision power function [BZ #24210]
Based off the ./sysdeps/ieee754/dbl-64/pow.c implementation,
and provides identical results.

Unlike other libmvec functions, this sets the underflow and overflow bits.
The caller can check these flags, and possibly re-run the calculations with
scalar pow to figure out what is causing the overflow or underflow.

I may have not normalized the data for benchmarking this properly,
but operating only on integers between 0-2^32 and floats between 0.5 and
1 I get the following:

Running 20 times over 32MiB
vector: mean 535.824919 (sd 0.246088)
scalar: mean 286.384220 (sd 0.027630)

Which is a very impressive speed boost.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Diffstat (limited to 'math/cargl.c')
0 files changed, 0 insertions, 0 deletions