[PATCH 1/N] x86_64 vectorization support: vectorized math functions addition to Glibc
Matthew Fortune
Matthew.Fortune@imgtec.com
Thu Sep 11 10:11:00 GMT 2014
Joseph S. Myers <joseph@codesourcery.com> writes:
> On Wed, 10 Sep 2014, Andrew Senkevich wrote:
>
> > Hi all,
> >
> > this is the first patch in the series of patches which will add Intel
> > vectorized math functions to Glibc.
>
> Please start by raising general design questions on libc-alpha before
> sending any patches; only send patches once there is consensus on the
> general questions and that consensus has been written up on a wiki page.
> For example:
FWIW I had envisaged vectorised math functions looking more generic such
that they were not dependent on vector size:
void sin_simd (float* dst, float* src, int count)
{
while (count > 0)
{
*dst = sinf (*src);
dst++;
src++;
count--;
}
}
With this pattern, the precise SIMD ISA extension is not important to the
caller. The additional cost of loading/storing the data compared with the
number of instructions required to perform the vectorised operation does
not seem significant. Ifunc is then the obvious way to select the widest
SIMD available at runtime.
Matthew
More information about the Libc-alpha
mailing list