blob: 4a2c79d20fa15df3d1e10c640ac29c6c10f57fdf [file] [log] [blame]
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-skip-if "" { powerpc*-*-darwin* } } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-O3 -ftree-vectorize -mdejagnu-cpu=power7 -ffast-math -mveclibabi=mass" } */
/* { dg-final { scan-assembler "bl\[\\. \]+atan2d2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+atan2f4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+hypotd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+hypotf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+powd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+powf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+acosd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+acosf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+acoshd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+acoshf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+asind2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+asinf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+asinhd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+asinhf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+atand2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+atanf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+atanhd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+atanhf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+cbrtd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+cbrtf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+cosd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+cosf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+coshd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+coshf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+erfd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+erff4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+erfcd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+erfcf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+exp2d2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+exp2f4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+expd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+expf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+expm1d2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+expm1f4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+lgamma" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+lgammaf" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+log10d2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+log10f4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+log1pd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+log1pf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+log2d2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+log2f4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+logd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+logf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+sind2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+sinf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+sinhd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+sinhf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+tand2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+tanf4" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+tanhd2" } } */
/* { dg-final { scan-assembler "bl\[\\. \]+tanhf4" } } */
#ifndef SIZE
#define SIZE 1024
#endif
double d1[SIZE] __attribute__((__aligned__(32)));
double d2[SIZE] __attribute__((__aligned__(32)));
double d3[SIZE] __attribute__((__aligned__(32)));
float f1[SIZE] __attribute__((__aligned__(32)));
float f2[SIZE] __attribute__((__aligned__(32)));
float f3[SIZE] __attribute__((__aligned__(32)));
void
test_double_atan2 (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_atan2 (d2[i], d3[i]);
}
void
test_float_atan2 (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_atan2f (f2[i], f3[i]);
}
void
test_double_hypot (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_hypot (d2[i], d3[i]);
}
void
test_float_hypot (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_hypotf (f2[i], f3[i]);
}
void
test_double_pow (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_pow (d2[i], d3[i]);
}
void
test_float_pow (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_powf (f2[i], f3[i]);
}
void
test_double_acos (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_acos (d2[i]);
}
void
test_float_acos (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_acosf (f2[i]);
}
void
test_double_acosh (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_acosh (d2[i]);
}
void
test_float_acosh (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_acoshf (f2[i]);
}
void
test_double_asin (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_asin (d2[i]);
}
void
test_float_asin (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_asinf (f2[i]);
}
void
test_double_asinh (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_asinh (d2[i]);
}
void
test_float_asinh (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_asinhf (f2[i]);
}
void
test_double_atan (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_atan (d2[i]);
}
void
test_float_atan (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_atanf (f2[i]);
}
void
test_double_atanh (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_atanh (d2[i]);
}
void
test_float_atanh (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_atanhf (f2[i]);
}
void
test_double_cbrt (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_cbrt (d2[i]);
}
void
test_float_cbrt (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_cbrtf (f2[i]);
}
void
test_double_cos (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_cos (d2[i]);
}
void
test_float_cos (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_cosf (f2[i]);
}
void
test_double_cosh (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_cosh (d2[i]);
}
void
test_float_cosh (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_coshf (f2[i]);
}
void
test_double_erf (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_erf (d2[i]);
}
void
test_float_erf (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_erff (f2[i]);
}
void
test_double_erfc (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_erfc (d2[i]);
}
void
test_float_erfc (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_erfcf (f2[i]);
}
void
test_double_exp2 (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_exp2 (d2[i]);
}
void
test_float_exp2 (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_exp2f (f2[i]);
}
void
test_double_exp (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_exp (d2[i]);
}
void
test_float_exp (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_expf (f2[i]);
}
void
test_double_expm1 (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_expm1 (d2[i]);
}
void
test_float_expm1 (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_expm1f (f2[i]);
}
void
test_double_lgamma (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_lgamma (d2[i]);
}
void
test_float_lgamma (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_lgammaf (f2[i]);
}
void
test_double_log10 (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_log10 (d2[i]);
}
void
test_float_log10 (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_log10f (f2[i]);
}
void
test_double_log1p (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_log1p (d2[i]);
}
void
test_float_log1p (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_log1pf (f2[i]);
}
void
test_double_log2 (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_log2 (d2[i]);
}
void
test_float_log2 (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_log2f (f2[i]);
}
void
test_double_log (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_log (d2[i]);
}
void
test_float_log (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_logf (f2[i]);
}
void
test_double_sin (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_sin (d2[i]);
}
void
test_float_sin (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_sinf (f2[i]);
}
void
test_double_sinh (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_sinh (d2[i]);
}
void
test_float_sinh (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_sinhf (f2[i]);
}
void
test_double_sqrt (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_sqrt (d2[i]);
}
void
test_float_sqrt (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_sqrtf (f2[i]);
}
void
test_double_tan (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_tan (d2[i]);
}
void
test_float_tan (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_tanf (f2[i]);
}
void
test_double_tanh (void)
{
int i;
for (i = 0; i < SIZE; i++)
d1[i] = __builtin_tanh (d2[i]);
}
void
test_float_tanh (void)
{
int i;
for (i = 0; i < SIZE; i++)
f1[i] = __builtin_tanhf (f2[i]);
}