/* { dg-do compile { target sqrt_insn } } */
/* { dg-options "-fdump-tree-sincos -Ofast --param max-pow-sqrt-depth=8" } */
/* { dg-additional-options "-mfloat-abi=softfp -mfpu=neon-vfpv4" { target arm*-*-* } } */

double
foo (double a)
{
  return __builtin_pow (a, -5.875);
}

double
foof (double a)
{
  return __builtin_pow (a, 0.75f);
}

double
bar (double a)
{
  return __builtin_pow (a, 1.0 + 0.00390625);
}

double
baz (double a)
{
  return __builtin_pow (a, -1.25) + __builtin_pow (a, 5.75) - __builtin_pow (a, 3.375);
}

#define N 256
void
vecfoo (double *a)
{
  for (int i = 0; i < N; i++)
    a[i] = __builtin_pow (a[i], 1.25);
}

/* { dg-final { scan-tree-dump-times "synthesizing" 7 "sincos" } } */
