Skip to content
Commit bf7f1c90 authored by Bert Tenjy's avatar Bert Tenjy Committed by Tulio Magno Quites Machado Filho
Browse files

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: default avatarTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
parent 8d42bf85
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment