Update ChangeLog and version files for release
[official-gcc.git] / gcc / testsuite / gcc.target / sparc / ultrasp7.c
blobb5a17b448a8b5ff1ed55a8c2748a647b85e4cb08
1 /* PR c/8281 */
2 /* Originator: TANIGUCHI Yasuaki <yasuaki@k8.dion.ne.jp> */
4 /* { dg-do compile } */
5 /* { dg-require-effective-target fpic } */
6 /* { dg-options "-O2 -mcpu=ultrasparc -fPIC" } */
8 static const double bp = 1.0, dp_l[] = { 0.0 };
10 double __ieee754_pow(double x, double y)
12 union {
13 int lo;
14 double d;
15 }uz;
17 double y1,t1,p_h,t,z;
18 double z_h,z_l,p_l;
19 double t2,r,s,u,v,w;
20 int i = 0;
22 double s_h,t_h;
23 double s2,s_l,t_l;
26 v = 1.0/(v+bp);
27 uz.d = s_h = s = u*v;
28 uz.lo = 0;
29 s_h = uz.d;
30 uz.d = t_h;
31 uz.lo = 3;
32 t_h = uz.d;
33 s_l = v*((u-s_h*t_h)-s_h*t_l);
34 s2 = s*s;
35 r = s2* s2* (1.1+s2*(1.2+s2*(1.3+s2*(1.4+s2*(1.5+s2*1.6)))));
36 s2 = s_h*s_h;
37 uz.lo = 0;
38 t_h = uz.d;
39 t_l = r-((t_h-3.0)-s2);
40 v = s_l*t_h+t_l*s;
41 p_l = v-(p_h-u);
42 z_h = bp *p_h;
43 z_l = bp*p_h+p_l*1.0+dp_l[i];
44 t = (double)i;
45 t1 = (((bp+z_l)+bp)+t);
46 t2 = z_l-(((t1-t)-bp)-z_h);
47 p_l = (y-y1)*t1+y*t2;
48 z = p_l+p_h;
50 return s*z;