1 /* { dg-do compile { target { powerpc*-*-linux* } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
3 /* { dg-require-effective-target powerpc_vsx_ok } */
4 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
5 /* { dg-options "-O3 -ftree-vectorize -mcpu=power7 -ffast-math -mveclibabi=mass" } */
6 /* { dg-final { scan-assembler "bl\[\\. \]+atan2d2" } } */
7 /* { dg-final { scan-assembler "bl\[\\. \]+atan2f4" } } */
8 /* { dg-final { scan-assembler "bl\[\\. \]+hypotd2" } } */
9 /* { dg-final { scan-assembler "bl\[\\. \]+hypotf4" } } */
10 /* { dg-final { scan-assembler "bl\[\\. \]+powd2" } } */
11 /* { dg-final { scan-assembler "bl\[\\. \]+powf4" } } */
12 /* { dg-final { scan-assembler "bl\[\\. \]+acosd2" } } */
13 /* { dg-final { scan-assembler "bl\[\\. \]+acosf4" } } */
14 /* { dg-final { scan-assembler "bl\[\\. \]+acoshd2" } } */
15 /* { dg-final { scan-assembler "bl\[\\. \]+acoshf4" } } */
16 /* { dg-final { scan-assembler "bl\[\\. \]+asind2" } } */
17 /* { dg-final { scan-assembler "bl\[\\. \]+asinf4" } } */
18 /* { dg-final { scan-assembler "bl\[\\. \]+asinhd2" } } */
19 /* { dg-final { scan-assembler "bl\[\\. \]+asinhf4" } } */
20 /* { dg-final { scan-assembler "bl\[\\. \]+atand2" } } */
21 /* { dg-final { scan-assembler "bl\[\\. \]+atanf4" } } */
22 /* { dg-final { scan-assembler "bl\[\\. \]+atanhd2" } } */
23 /* { dg-final { scan-assembler "bl\[\\. \]+atanhf4" } } */
24 /* { dg-final { scan-assembler "bl\[\\. \]+cbrtd2" } } */
25 /* { dg-final { scan-assembler "bl\[\\. \]+cbrtf4" } } */
26 /* { dg-final { scan-assembler "bl\[\\. \]+cosd2" } } */
27 /* { dg-final { scan-assembler "bl\[\\. \]+cosf4" } } */
28 /* { dg-final { scan-assembler "bl\[\\. \]+coshd2" } } */
29 /* { dg-final { scan-assembler "bl\[\\. \]+coshf4" } } */
30 /* { dg-final { scan-assembler "bl\[\\. \]+erfd2" } } */
31 /* { dg-final { scan-assembler "bl\[\\. \]+erff4" } } */
32 /* { dg-final { scan-assembler "bl\[\\. \]+erfcd2" } } */
33 /* { dg-final { scan-assembler "bl\[\\. \]+erfcf4" } } */
34 /* { dg-final { scan-assembler "bl\[\\. \]+exp2d2" } } */
35 /* { dg-final { scan-assembler "bl\[\\. \]+exp2f4" } } */
36 /* { dg-final { scan-assembler "bl\[\\. \]+expd2" } } */
37 /* { dg-final { scan-assembler "bl\[\\. \]+expf4" } } */
38 /* { dg-final { scan-assembler "bl\[\\. \]+expm1d2" } } */
39 /* { dg-final { scan-assembler "bl\[\\. \]+expm1f4" } } */
40 /* { dg-final { scan-assembler "bl\[\\. \]+lgamma" } } */
41 /* { dg-final { scan-assembler "bl\[\\. \]+lgammaf" } } */
42 /* { dg-final { scan-assembler "bl\[\\. \]+log10d2" } } */
43 /* { dg-final { scan-assembler "bl\[\\. \]+log10f4" } } */
44 /* { dg-final { scan-assembler "bl\[\\. \]+log1pd2" } } */
45 /* { dg-final { scan-assembler "bl\[\\. \]+log1pf4" } } */
46 /* { dg-final { scan-assembler "bl\[\\. \]+log2d2" } } */
47 /* { dg-final { scan-assembler "bl\[\\. \]+log2f4" } } */
48 /* { dg-final { scan-assembler "bl\[\\. \]+logd2" } } */
49 /* { dg-final { scan-assembler "bl\[\\. \]+logf4" } } */
50 /* { dg-final { scan-assembler "bl\[\\. \]+sind2" } } */
51 /* { dg-final { scan-assembler "bl\[\\. \]+sinf4" } } */
52 /* { dg-final { scan-assembler "bl\[\\. \]+sinhd2" } } */
53 /* { dg-final { scan-assembler "bl\[\\. \]+sinhf4" } } */
54 /* { dg-final { scan-assembler "bl\[\\. \]+tand2" } } */
55 /* { dg-final { scan-assembler "bl\[\\. \]+tanf4" } } */
56 /* { dg-final { scan-assembler "bl\[\\. \]+tanhd2" } } */
57 /* { dg-final { scan-assembler "bl\[\\. \]+tanhf4" } } */
63 double d1
[SIZE
] __attribute__((__aligned__(32)));
64 double d2
[SIZE
] __attribute__((__aligned__(32)));
65 double d3
[SIZE
] __attribute__((__aligned__(32)));
67 float f1
[SIZE
] __attribute__((__aligned__(32)));
68 float f2
[SIZE
] __attribute__((__aligned__(32)));
69 float f3
[SIZE
] __attribute__((__aligned__(32)));
72 test_double_atan2 (void)
76 for (i
= 0; i
< SIZE
; i
++)
77 d1
[i
] = __builtin_atan2 (d2
[i
], d3
[i
]);
81 test_float_atan2 (void)
85 for (i
= 0; i
< SIZE
; i
++)
86 f1
[i
] = __builtin_atan2f (f2
[i
], f3
[i
]);
90 test_double_hypot (void)
94 for (i
= 0; i
< SIZE
; i
++)
95 d1
[i
] = __builtin_hypot (d2
[i
], d3
[i
]);
99 test_float_hypot (void)
103 for (i
= 0; i
< SIZE
; i
++)
104 f1
[i
] = __builtin_hypotf (f2
[i
], f3
[i
]);
108 test_double_pow (void)
112 for (i
= 0; i
< SIZE
; i
++)
113 d1
[i
] = __builtin_pow (d2
[i
], d3
[i
]);
117 test_float_pow (void)
121 for (i
= 0; i
< SIZE
; i
++)
122 f1
[i
] = __builtin_powf (f2
[i
], f3
[i
]);
126 test_double_acos (void)
130 for (i
= 0; i
< SIZE
; i
++)
131 d1
[i
] = __builtin_acos (d2
[i
]);
135 test_float_acos (void)
139 for (i
= 0; i
< SIZE
; i
++)
140 f1
[i
] = __builtin_acosf (f2
[i
]);
144 test_double_acosh (void)
148 for (i
= 0; i
< SIZE
; i
++)
149 d1
[i
] = __builtin_acosh (d2
[i
]);
153 test_float_acosh (void)
157 for (i
= 0; i
< SIZE
; i
++)
158 f1
[i
] = __builtin_acoshf (f2
[i
]);
162 test_double_asin (void)
166 for (i
= 0; i
< SIZE
; i
++)
167 d1
[i
] = __builtin_asin (d2
[i
]);
171 test_float_asin (void)
175 for (i
= 0; i
< SIZE
; i
++)
176 f1
[i
] = __builtin_asinf (f2
[i
]);
180 test_double_asinh (void)
184 for (i
= 0; i
< SIZE
; i
++)
185 d1
[i
] = __builtin_asinh (d2
[i
]);
189 test_float_asinh (void)
193 for (i
= 0; i
< SIZE
; i
++)
194 f1
[i
] = __builtin_asinhf (f2
[i
]);
198 test_double_atan (void)
202 for (i
= 0; i
< SIZE
; i
++)
203 d1
[i
] = __builtin_atan (d2
[i
]);
207 test_float_atan (void)
211 for (i
= 0; i
< SIZE
; i
++)
212 f1
[i
] = __builtin_atanf (f2
[i
]);
216 test_double_atanh (void)
220 for (i
= 0; i
< SIZE
; i
++)
221 d1
[i
] = __builtin_atanh (d2
[i
]);
225 test_float_atanh (void)
229 for (i
= 0; i
< SIZE
; i
++)
230 f1
[i
] = __builtin_atanhf (f2
[i
]);
234 test_double_cbrt (void)
238 for (i
= 0; i
< SIZE
; i
++)
239 d1
[i
] = __builtin_cbrt (d2
[i
]);
243 test_float_cbrt (void)
247 for (i
= 0; i
< SIZE
; i
++)
248 f1
[i
] = __builtin_cbrtf (f2
[i
]);
252 test_double_cos (void)
256 for (i
= 0; i
< SIZE
; i
++)
257 d1
[i
] = __builtin_cos (d2
[i
]);
261 test_float_cos (void)
265 for (i
= 0; i
< SIZE
; i
++)
266 f1
[i
] = __builtin_cosf (f2
[i
]);
270 test_double_cosh (void)
274 for (i
= 0; i
< SIZE
; i
++)
275 d1
[i
] = __builtin_cosh (d2
[i
]);
279 test_float_cosh (void)
283 for (i
= 0; i
< SIZE
; i
++)
284 f1
[i
] = __builtin_coshf (f2
[i
]);
288 test_double_erf (void)
292 for (i
= 0; i
< SIZE
; i
++)
293 d1
[i
] = __builtin_erf (d2
[i
]);
297 test_float_erf (void)
301 for (i
= 0; i
< SIZE
; i
++)
302 f1
[i
] = __builtin_erff (f2
[i
]);
306 test_double_erfc (void)
310 for (i
= 0; i
< SIZE
; i
++)
311 d1
[i
] = __builtin_erfc (d2
[i
]);
315 test_float_erfc (void)
319 for (i
= 0; i
< SIZE
; i
++)
320 f1
[i
] = __builtin_erfcf (f2
[i
]);
324 test_double_exp2 (void)
328 for (i
= 0; i
< SIZE
; i
++)
329 d1
[i
] = __builtin_exp2 (d2
[i
]);
333 test_float_exp2 (void)
337 for (i
= 0; i
< SIZE
; i
++)
338 f1
[i
] = __builtin_exp2f (f2
[i
]);
342 test_double_exp (void)
346 for (i
= 0; i
< SIZE
; i
++)
347 d1
[i
] = __builtin_exp (d2
[i
]);
351 test_float_exp (void)
355 for (i
= 0; i
< SIZE
; i
++)
356 f1
[i
] = __builtin_expf (f2
[i
]);
360 test_double_expm1 (void)
364 for (i
= 0; i
< SIZE
; i
++)
365 d1
[i
] = __builtin_expm1 (d2
[i
]);
369 test_float_expm1 (void)
373 for (i
= 0; i
< SIZE
; i
++)
374 f1
[i
] = __builtin_expm1f (f2
[i
]);
378 test_double_lgamma (void)
382 for (i
= 0; i
< SIZE
; i
++)
383 d1
[i
] = __builtin_lgamma (d2
[i
]);
387 test_float_lgamma (void)
391 for (i
= 0; i
< SIZE
; i
++)
392 f1
[i
] = __builtin_lgammaf (f2
[i
]);
396 test_double_log10 (void)
400 for (i
= 0; i
< SIZE
; i
++)
401 d1
[i
] = __builtin_log10 (d2
[i
]);
405 test_float_log10 (void)
409 for (i
= 0; i
< SIZE
; i
++)
410 f1
[i
] = __builtin_log10f (f2
[i
]);
414 test_double_log1p (void)
418 for (i
= 0; i
< SIZE
; i
++)
419 d1
[i
] = __builtin_log1p (d2
[i
]);
423 test_float_log1p (void)
427 for (i
= 0; i
< SIZE
; i
++)
428 f1
[i
] = __builtin_log1pf (f2
[i
]);
432 test_double_log2 (void)
436 for (i
= 0; i
< SIZE
; i
++)
437 d1
[i
] = __builtin_log2 (d2
[i
]);
441 test_float_log2 (void)
445 for (i
= 0; i
< SIZE
; i
++)
446 f1
[i
] = __builtin_log2f (f2
[i
]);
450 test_double_log (void)
454 for (i
= 0; i
< SIZE
; i
++)
455 d1
[i
] = __builtin_log (d2
[i
]);
459 test_float_log (void)
463 for (i
= 0; i
< SIZE
; i
++)
464 f1
[i
] = __builtin_logf (f2
[i
]);
468 test_double_sin (void)
472 for (i
= 0; i
< SIZE
; i
++)
473 d1
[i
] = __builtin_sin (d2
[i
]);
477 test_float_sin (void)
481 for (i
= 0; i
< SIZE
; i
++)
482 f1
[i
] = __builtin_sinf (f2
[i
]);
486 test_double_sinh (void)
490 for (i
= 0; i
< SIZE
; i
++)
491 d1
[i
] = __builtin_sinh (d2
[i
]);
495 test_float_sinh (void)
499 for (i
= 0; i
< SIZE
; i
++)
500 f1
[i
] = __builtin_sinhf (f2
[i
]);
504 test_double_sqrt (void)
508 for (i
= 0; i
< SIZE
; i
++)
509 d1
[i
] = __builtin_sqrt (d2
[i
]);
513 test_float_sqrt (void)
517 for (i
= 0; i
< SIZE
; i
++)
518 f1
[i
] = __builtin_sqrtf (f2
[i
]);
522 test_double_tan (void)
526 for (i
= 0; i
< SIZE
; i
++)
527 d1
[i
] = __builtin_tan (d2
[i
]);
531 test_float_tan (void)
535 for (i
= 0; i
< SIZE
; i
++)
536 f1
[i
] = __builtin_tanf (f2
[i
]);
540 test_double_tanh (void)
544 for (i
= 0; i
< SIZE
; i
++)
545 d1
[i
] = __builtin_tanh (d2
[i
]);
549 test_float_tanh (void)
553 for (i
= 0; i
< SIZE
; i
++)
554 f1
[i
] = __builtin_tanhf (f2
[i
]);