> - sincos and all functions working with arrays ... Because these
>   functions have pointer arguments and that would require a bigger
>   rework of ix86_veclibabi_aocl().  Also, I'm not sure if GCC even ever
>   generates calls to these functions.
GCC is able to recognize sin and cos calls and turn them into single sincos.

double a[2];
void test (double b)
{
        a[0]=__builtin_sin (b);
        a[1]=__builtin_cos (b);
}

There is sincos pass for this.

For functions working on arrays, I think we would need to pattern match
them like we do memset/memcpy in -ftree-loop-distribute-patterns...
> - linearfrac ... Because these functions are specific to the AMD
>   library.  There's no equivalent glibc function nor GCC internal
>   function nor GCC built-in.
> - powx, sqrt, fabs ... Because GCC doesn't vectorize these functions.
sqrt/fabs are vectorized, but produced inline since these are easily
doable with SSE/AVX.

Honza

Reply via email to