> - 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