PPC64: Add libmvec SIMD double-precision cosine function [BZ #24205]
This is the 1st of 12 patches that will implement libmvec for PPC64 using VSX hardware capabilities. Implements double-precision cosine using VSX vector capability. Algorithm for cosine is from x86_64 [commit #21933112] adapted to PPC64. Name-mangling exactly duplicates SSE ISA of the x86_64 ABI. The details are at <https://sourceware.org/glibc/wiki/ libmvec?action=AttachFile&do=view&target=VectorABI.txt> The patch has been tested on PPC64/POWER8 Little Endian and Big Endian. It is tested using the framework created for libmvec on x86_64 which runs tests on issuing 'make check'. Tests of the new vector cosine function all pass. Library libmvec is built by default. To disable building it, pass flag --disable-mathvec to the configure script. A runtime check prevents vector tests running on systems lacking VSX hardware. Glibc built with this patch was installed using the procedure outlined at <https://sourceware.org/glibc/wiki/Testing/Builds >. Compiling against the new library created a test executable which computes cosines using the vector version of the function. The results are at most 2-ulps away from the scalar cosine. That is expected and indicated in the comments describing the algorithm - as obtained from x86_64 commit #21933112. Reviewed-by:Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Loading
Please register or sign in to comment