2 /* { dg-skip-if "-mpowerpc-gpopt not supported" { powerpc*-*-darwin* } } */
3 /* { dg-options "-O2 -ffast-math -fno-inline -fno-unroll-loops -lm -mpowerpc-gpopt" } */
7 extern void abort (void);
12 convert_it_1 (double x
)
14 return pow (x
, 10.0 / 3.0);
18 convert_it_2 (double x
)
20 return pow (x
, 11.0 / 3.0);
24 convert_it_3 (double x
)
26 return pow (x
, -7.0 / 3.0);
30 convert_it_4 (double x
)
32 return pow (x
, -8.0 / 3.0);
36 main (int argc
, char *argv
[])
38 double values
[NVALS
] = { 3.0, 1.95, 2.227, 4.0, 256.0, .0008797 };
39 double PREC
= .999999;
42 for (i
= 0; i
< NVALS
; i
++)
46 x
= __builtin_powi (values
[i
], 3);
47 y
= __builtin_powi (cbrt (values
[i
]), 1);
48 if (fabs (convert_it_1 (values
[i
]) / (x
* y
)) < PREC
)
51 x
= __builtin_powi (values
[i
], 3);
52 y
= __builtin_powi (cbrt (values
[i
]), 2);
53 if (fabs (convert_it_2 (values
[i
]) / (x
* y
)) < PREC
)
56 x
= __builtin_powi (values
[i
], -3);
57 y
= __builtin_powi (cbrt (values
[i
]), 2);
58 if (fabs (convert_it_3 (values
[i
]) / (x
* y
)) < PREC
)
61 x
= __builtin_powi (values
[i
], -3);
62 y
= __builtin_powi (cbrt (values
[i
]), 1);
63 if (fabs (convert_it_4 (values
[i
]) / (x
* y
)) < PREC
)