1 /* { dg-do compile { target { powerpc*-*-linux* } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
3 /* { dg-require-effective-target powerpc_vsx_ok } */
4 /* { dg-options "-O3 -ftree-vectorize -mcpu=power7 -ffast-math -mveclibabi=mass" } */
5 /* { dg-final { scan-assembler "bl\[\\. \]+atan2d2" } } */
6 /* { dg-final { scan-assembler "bl\[\\. \]+atan2f4" } } */
7 /* { dg-final { scan-assembler "bl\[\\. \]+hypotd2" } } */
8 /* { dg-final { scan-assembler "bl\[\\. \]+hypotf4" } } */
9 /* { dg-final { scan-assembler "bl\[\\. \]+powd2" } } */
10 /* { dg-final { scan-assembler "bl\[\\. \]+powf4" } } */
11 /* { dg-final { scan-assembler "bl\[\\. \]+acosd2" } } */
12 /* { dg-final { scan-assembler "bl\[\\. \]+acosf4" } } */
13 /* { dg-final { scan-assembler "bl\[\\. \]+acoshd2" } } */
14 /* { dg-final { scan-assembler "bl\[\\. \]+acoshf4" } } */
15 /* { dg-final { scan-assembler "bl\[\\. \]+asind2" } } */
16 /* { dg-final { scan-assembler "bl\[\\. \]+asinf4" } } */
17 /* { dg-final { scan-assembler "bl\[\\. \]+asinhd2" } } */
18 /* { dg-final { scan-assembler "bl\[\\. \]+asinhf4" } } */
19 /* { dg-final { scan-assembler "bl\[\\. \]+atand2" } } */
20 /* { dg-final { scan-assembler "bl\[\\. \]+atanf4" } } */
21 /* { dg-final { scan-assembler "bl\[\\. \]+atanhd2" } } */
22 /* { dg-final { scan-assembler "bl\[\\. \]+atanhf4" } } */
23 /* { dg-final { scan-assembler "bl\[\\. \]+cbrtd2" } } */
24 /* { dg-final { scan-assembler "bl\[\\. \]+cbrtf4" } } */
25 /* { dg-final { scan-assembler "bl\[\\. \]+cosd2" } } */
26 /* { dg-final { scan-assembler "bl\[\\. \]+cosf4" } } */
27 /* { dg-final { scan-assembler "bl\[\\. \]+coshd2" } } */
28 /* { dg-final { scan-assembler "bl\[\\. \]+coshf4" } } */
29 /* { dg-final { scan-assembler "bl\[\\. \]+erfd2" } } */
30 /* { dg-final { scan-assembler "bl\[\\. \]+erff4" } } */
31 /* { dg-final { scan-assembler "bl\[\\. \]+erfcd2" } } */
32 /* { dg-final { scan-assembler "bl\[\\. \]+erfcf4" } } */
33 /* { dg-final { scan-assembler "bl\[\\. \]+exp2d2" } } */
34 /* { dg-final { scan-assembler "bl\[\\. \]+exp2f4" } } */
35 /* { dg-final { scan-assembler "bl\[\\. \]+expd2" } } */
36 /* { dg-final { scan-assembler "bl\[\\. \]+expf4" } } */
37 /* { dg-final { scan-assembler "bl\[\\. \]+expm1d2" } } */
38 /* { dg-final { scan-assembler "bl\[\\. \]+expm1f4" } } */
39 /* { dg-final { scan-assembler "bl\[\\. \]+lgamma" } } */
40 /* { dg-final { scan-assembler "bl\[\\. \]+lgammaf" } } */
41 /* { dg-final { scan-assembler "bl\[\\. \]+log10d2" } } */
42 /* { dg-final { scan-assembler "bl\[\\. \]+log10f4" } } */
43 /* { dg-final { scan-assembler "bl\[\\. \]+log1pd2" } } */
44 /* { dg-final { scan-assembler "bl\[\\. \]+log1pf4" } } */
45 /* { dg-final { scan-assembler "bl\[\\. \]+log2d2" } } */
46 /* { dg-final { scan-assembler "bl\[\\. \]+log2f4" } } */
47 /* { dg-final { scan-assembler "bl\[\\. \]+logd2" } } */
48 /* { dg-final { scan-assembler "bl\[\\. \]+logf4" } } */
49 /* { dg-final { scan-assembler "bl\[\\. \]+sind2" } } */
50 /* { dg-final { scan-assembler "bl\[\\. \]+sinf4" } } */
51 /* { dg-final { scan-assembler "bl\[\\. \]+sinhd2" } } */
52 /* { dg-final { scan-assembler "bl\[\\. \]+sinhf4" } } */
53 /* { dg-final { scan-assembler "bl\[\\. \]+tand2" } } */
54 /* { dg-final { scan-assembler "bl\[\\. \]+tanf4" } } */
55 /* { dg-final { scan-assembler "bl\[\\. \]+tanhd2" } } */
56 /* { dg-final { scan-assembler "bl\[\\. \]+tanhf4" } } */
62 double d1[SIZE] __attribute__((__aligned__(32)));
63 double d2[SIZE] __attribute__((__aligned__(32)));
64 double d3[SIZE] __attribute__((__aligned__(32)));
66 float f1[SIZE] __attribute__((__aligned__(32)));
67 float f2[SIZE] __attribute__((__aligned__(32)));
68 float f3[SIZE] __attribute__((__aligned__(32)));
71 test_double_atan2 (void)
75 for (i = 0; i < SIZE; i++)
76 d1[i] = __builtin_atan2 (d2[i], d3[i]);
80 test_float_atan2 (void)
84 for (i = 0; i < SIZE; i++)
85 f1[i] = __builtin_atan2f (f2[i], f3[i]);
89 test_double_hypot (void)
93 for (i = 0; i < SIZE; i++)
94 d1[i] = __builtin_hypot (d2[i], d3[i]);
98 test_float_hypot (void)
102 for (i = 0; i < SIZE; i++)
103 f1[i] = __builtin_hypotf (f2[i], f3[i]);
107 test_double_pow (void)
111 for (i = 0; i < SIZE; i++)
112 d1[i] = __builtin_pow (d2[i], d3[i]);
116 test_float_pow (void)
120 for (i = 0; i < SIZE; i++)
121 f1[i] = __builtin_powf (f2[i], f3[i]);
125 test_double_acos (void)
129 for (i = 0; i < SIZE; i++)
130 d1[i] = __builtin_acos (d2[i]);
134 test_float_acos (void)
138 for (i = 0; i < SIZE; i++)
139 f1[i] = __builtin_acosf (f2[i]);
143 test_double_acosh (void)
147 for (i = 0; i < SIZE; i++)
148 d1[i] = __builtin_acosh (d2[i]);
152 test_float_acosh (void)
156 for (i = 0; i < SIZE; i++)
157 f1[i] = __builtin_acoshf (f2[i]);
161 test_double_asin (void)
165 for (i = 0; i < SIZE; i++)
166 d1[i] = __builtin_asin (d2[i]);
170 test_float_asin (void)
174 for (i = 0; i < SIZE; i++)
175 f1[i] = __builtin_asinf (f2[i]);
179 test_double_asinh (void)
183 for (i = 0; i < SIZE; i++)
184 d1[i] = __builtin_asinh (d2[i]);
188 test_float_asinh (void)
192 for (i = 0; i < SIZE; i++)
193 f1[i] = __builtin_asinhf (f2[i]);
197 test_double_atan (void)
201 for (i = 0; i < SIZE; i++)
202 d1[i] = __builtin_atan (d2[i]);
206 test_float_atan (void)
210 for (i = 0; i < SIZE; i++)
211 f1[i] = __builtin_atanf (f2[i]);
215 test_double_atanh (void)
219 for (i = 0; i < SIZE; i++)
220 d1[i] = __builtin_atanh (d2[i]);
224 test_float_atanh (void)
228 for (i = 0; i < SIZE; i++)
229 f1[i] = __builtin_atanhf (f2[i]);
233 test_double_cbrt (void)
237 for (i = 0; i < SIZE; i++)
238 d1[i] = __builtin_cbrt (d2[i]);
242 test_float_cbrt (void)
246 for (i = 0; i < SIZE; i++)
247 f1[i] = __builtin_cbrtf (f2[i]);
251 test_double_cos (void)
255 for (i = 0; i < SIZE; i++)
256 d1[i] = __builtin_cos (d2[i]);
260 test_float_cos (void)
264 for (i = 0; i < SIZE; i++)
265 f1[i] = __builtin_cosf (f2[i]);
269 test_double_cosh (void)
273 for (i = 0; i < SIZE; i++)
274 d1[i] = __builtin_cosh (d2[i]);
278 test_float_cosh (void)
282 for (i = 0; i < SIZE; i++)
283 f1[i] = __builtin_coshf (f2[i]);
287 test_double_erf (void)
291 for (i = 0; i < SIZE; i++)
292 d1[i] = __builtin_erf (d2[i]);
296 test_float_erf (void)
300 for (i = 0; i < SIZE; i++)
301 f1[i] = __builtin_erff (f2[i]);
305 test_double_erfc (void)
309 for (i = 0; i < SIZE; i++)
310 d1[i] = __builtin_erfc (d2[i]);
314 test_float_erfc (void)
318 for (i = 0; i < SIZE; i++)
319 f1[i] = __builtin_erfcf (f2[i]);
323 test_double_exp2 (void)
327 for (i = 0; i < SIZE; i++)
328 d1[i] = __builtin_exp2 (d2[i]);
332 test_float_exp2 (void)
336 for (i = 0; i < SIZE; i++)
337 f1[i] = __builtin_exp2f (f2[i]);
341 test_double_exp (void)
345 for (i = 0; i < SIZE; i++)
346 d1[i] = __builtin_exp (d2[i]);
350 test_float_exp (void)
354 for (i = 0; i < SIZE; i++)
355 f1[i] = __builtin_expf (f2[i]);
359 test_double_expm1 (void)
363 for (i = 0; i < SIZE; i++)
364 d1[i] = __builtin_expm1 (d2[i]);
368 test_float_expm1 (void)
372 for (i = 0; i < SIZE; i++)
373 f1[i] = __builtin_expm1f (f2[i]);
377 test_double_lgamma (void)
381 for (i = 0; i < SIZE; i++)
382 d1[i] = __builtin_lgamma (d2[i]);
386 test_float_lgamma (void)
390 for (i = 0; i < SIZE; i++)
391 f1[i] = __builtin_lgammaf (f2[i]);
395 test_double_log10 (void)
399 for (i = 0; i < SIZE; i++)
400 d1[i] = __builtin_log10 (d2[i]);
404 test_float_log10 (void)
408 for (i = 0; i < SIZE; i++)
409 f1[i] = __builtin_log10f (f2[i]);
413 test_double_log1p (void)
417 for (i = 0; i < SIZE; i++)
418 d1[i] = __builtin_log1p (d2[i]);
422 test_float_log1p (void)
426 for (i = 0; i < SIZE; i++)
427 f1[i] = __builtin_log1pf (f2[i]);
431 test_double_log2 (void)
435 for (i = 0; i < SIZE; i++)
436 d1[i] = __builtin_log2 (d2[i]);
440 test_float_log2 (void)
444 for (i = 0; i < SIZE; i++)
445 f1[i] = __builtin_log2f (f2[i]);
449 test_double_log (void)
453 for (i = 0; i < SIZE; i++)
454 d1[i] = __builtin_log (d2[i]);
458 test_float_log (void)
462 for (i = 0; i < SIZE; i++)
463 f1[i] = __builtin_logf (f2[i]);
467 test_double_sin (void)
471 for (i = 0; i < SIZE; i++)
472 d1[i] = __builtin_sin (d2[i]);
476 test_float_sin (void)
480 for (i = 0; i < SIZE; i++)
481 f1[i] = __builtin_sinf (f2[i]);
485 test_double_sinh (void)
489 for (i = 0; i < SIZE; i++)
490 d1[i] = __builtin_sinh (d2[i]);
494 test_float_sinh (void)
498 for (i = 0; i < SIZE; i++)
499 f1[i] = __builtin_sinhf (f2[i]);
503 test_double_sqrt (void)
507 for (i = 0; i < SIZE; i++)
508 d1[i] = __builtin_sqrt (d2[i]);
512 test_float_sqrt (void)
516 for (i = 0; i < SIZE; i++)
517 f1[i] = __builtin_sqrtf (f2[i]);
521 test_double_tan (void)
525 for (i = 0; i < SIZE; i++)
526 d1[i] = __builtin_tan (d2[i]);
530 test_float_tan (void)
534 for (i = 0; i < SIZE; i++)
535 f1[i] = __builtin_tanf (f2[i]);
539 test_double_tanh (void)
543 for (i = 0; i < SIZE; i++)
544 d1[i] = __builtin_tanh (d2[i]);
548 test_float_tanh (void)
552 for (i = 0; i < SIZE; i++)
553 f1[i] = __builtin_tanhf (f2[i]);