Bug 6954 - [SH] ICE in output_branch, at config/sh/sh.c
Summary: [SH] ICE in output_branch, at config/sh/sh.c
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 3.1
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2002-06-07 05:56 UTC by Bruno Haible
Modified: 2003-06-12 00:15 UTC (History)
4 users (show)

See Also:
Host: i686-pc-linux-gnu
Target: sh-unknown-linux-gnu
Build: i686-pc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments
Preprocessed output of file causing crash. (14.90 KB, application/octet-stream)
2003-05-26 23:34 UTC, dank
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bruno Haible 2002-06-07 05:56:02 UTC
Compiling the attached program (a single function) gives an Internal
compiler error in output_branch, at config/sh/sh.c:1050

Release:
3.1

Environment:
System: Linux linuix 2.4.18-4GB #1 Wed Mar 27 13:57:05 UTC 2002 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: sh-unknown-linux-gnu
configured with: /packages2/gcc-3.1/configure --enable-shared --disable-nls --target=sh-linux --prefix=/cross/sh-linux-tools --with-local-prefix=/cross/sh-linux/local --with-as=/cross/sh-linux-tools/bin/sh-linux-as --with-gnu-as --with-ld=/cross/sh-linux-tools/bin/sh-linux-ld --with-gnu-ld --enable-languages=c

How-To-Repeat:
$ sh-linux-gcc -O2 -Wall -S /tmp/bug.c -o /tmp/bug.s
/tmp/bug.c: In function `__ieee754_atan2':
/tmp/bug.c:1098: Internal compiler error in output_branch, at config/sh/sh.c:1050
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

====================================== bug.c ==============================
typedef union { int i[2]; double d; } number;
extern const number cij[241][7];
extern const number hij[241][16];
static const number
    d3 = {{0x55555555, 0xbfd55555} },
    d5 = {{0x999997fd, 0x3fc99999} },
    d7 = {{0x923f7603, 0xbfc24924} },
    d9 = {{0xe5129a3b, 0x3fbc71c6} },
    d11 = {{0x22b13c25, 0xbfb74580} },
    d13 = {{0x8b31cbce, 0x3fb375f0} },
    f3 = {{0x55555555, 0xbfd55555} },
    ff3 = {{0x55555555, 0xbc755555} },
    f5 = {{0x9999999a, 0x3fc99999} },
    ff5 = {{0x9999999a, 0xbc699999} },
    f7 = {{0x92492492, 0xbfc24924} },
    ff7 = {{0x92492492, 0xbc624924} },
    f9 = {{0x1c71c71c, 0x3fbc71c7} },
    ff9 = {{0x1c71c71c, 0x3c5c71c7} },
    f11 = {{0x745d1746, 0xbfb745d1} },
    f13 = {{0x13b13b14, 0x3fb3b13b} },
    f15 = {{0x11111111, 0xbfb11111} },
    f17 = {{0x1e1e1e1e, 0x3fae1e1e} },
    f19 = {{0xbca1af28, 0xbfaaf286} },
    zero = {{0x00000000, 0x00000000} },
    mzero = {{0x00000000, 0x80000000} },
    one = {{0x00000000, 0x3ff00000} },
    inv16 = {{0x00000000, 0x3fb00000} },
    opi = {{0x54442d18, 0x400921fb} },
    opi1 = {{0x33145c07, 0x3ca1a626} },
    mopi = {{0x54442d18, 0xc00921fb} },
    hpi = {{0x54442d18, 0x3ff921fb} },
    hpi1 = {{0x33145c07, 0x3c91a626} },
    mhpi = {{0x54442d18, 0xbff921fb} },
    qpi = {{0x54442d18, 0x3fe921fb} },
    qpi1 = {{0x33145c07, 0x3c81a626} },
    mqpi = {{0x54442d18, 0xbfe921fb} },
    tqpi = {{0x7f3321d2, 0x4002d97c} },
    tqpi1 = {{0x4c9e8a0a, 0x3c9a7939} },
    mtqpi = {{0x7f3321d2, 0xc002d97c} },
    u1 = {{0x00000000, 0x3c314c2a} },
    u2 = {{0x00000000, 0x3bf955e4} },
    u3 = {{0x00000000, 0x3bf955e4} },
    u4 = {{0x00000000, 0x3bf955e4} },
    u5 = {{0x00000000, 0x3aaef2d1} },
    u6 = {{0x00000000, 0x3a6eeb36} },
    u7 = {{0x00000000, 0x3a6eeb36} },
    u8 = {{0x00000000, 0x3a6eeb36} },
    u91 = {{0x00000000, 0x3c6dffc0} },
    u92 = {{0x00000000, 0x3c527bd0} },
    u93 = {{0x00000000, 0x3c3cd057} },
    u94 = {{0x00000000, 0x3c329cdf} },
    ua1 = {{0x00000000, 0x3c3a1edf} },
    ua2 = {{0x00000000, 0x3c33f0e1} },
    ub = {{0x00000000, 0x3a98c56d} },
    uc = {{0x00000000, 0x3a9375de} },
    ud[5] ={{{0x00000000, 0x38c6eddf} },
            {{0x00000000, 0x35c6ef60} },
            {{0x00000000, 0x32c6ed2f} },
            {{0x00000000, 0x23c6eee8} },
            {{0x00000000, 0x11c6ed16} }},
    ue = {{0x00000000, 0x38900e9d} },
    two8 = {{0x00000000, 0x40700000} },
    two52 = {{0x00000000, 0x43300000} },
    two500 = {{0x00000000, 0x5f300000} },
    twom500 = {{0x00000000, 0x20b00000} },
    twom1022 = {{0x00000000, 0x00100000} };
extern double atan2Mp(double ,double ,const int[]);
extern double signArctan2(double ,double);
extern double normalized(double ,double,double ,double);
double __ieee754_atan2(double y,double x)
{
  int i,de,ux,dx,uy,dy;
  static const int pr[5]={6,8,10,20,32};
  double ax,ay,u,du,u9,ua,v,vv,dv,t1,t2,t3,t4,t5,t6,t7,t8,
         z,zz,cor,s1,ss1,s2,ss2;
  number num;
  static const int ep = 59768832,
                   em =-59768832;
  num.d = x; ux = num.i[1]; dx = num.i[0];
  if ((ux&0x7ff00000) ==0x7ff00000)
    {
      if (((ux&0x000fffff)|dx)!=0x00000000)
        return x+x;
    }
  num.d = y; uy = num.i[1]; dy = num.i[0];
  if ((uy&0x7ff00000) ==0x7ff00000)
    {
      if (((uy&0x000fffff)|dy)!=0x00000000)
        return y+y;
    }
  if (uy==0x00000000)
    {
      if (dy==0x00000000)
        {
          if ((ux&0x80000000)==0x00000000)
            return zero.d;
          else
            return opi.d;
        }
    }
  else if (uy==0x80000000)
    {
      if (dy==0x00000000)
        {
          if ((ux&0x80000000)==0x00000000)
            return mzero.d;
          else
            return mopi.d;
        }
    }
  if (x==zero.d)
    {
      if ((uy&0x80000000)==0x00000000)
        return hpi.d;
      else
        return mhpi.d;
    }
  if (ux==0x7ff00000)
    {
      if (dx==0x00000000)
        {
          if (uy==0x7ff00000)
            {
              if (dy==0x00000000)
                return qpi.d;
            }
          else if (uy==0xfff00000)
            {
              if (dy==0x00000000)
                return mqpi.d;
            }
          else
            {
              if ((uy&0x80000000)==0x00000000)
                return zero.d;
              else
                return mzero.d;
            }
        }
    }
  else if (ux==0xfff00000)
    {
      if (dx==0x00000000)
        {
          if (uy==0x7ff00000)
            {
              if (dy==0x00000000)
                return tqpi.d;
            }
          else if (uy==0xfff00000)
            {
              if (dy==0x00000000)
                return mtqpi.d;
            }
          else
            {
              if ((uy&0x80000000)==0x00000000)
                return opi.d;
              else
                return mopi.d;
            }
        }
    }
  if (uy==0x7ff00000)
    {
      if (dy==0x00000000)
        return hpi.d;
    }
  else if (uy==0xfff00000)
    {
      if (dy==0x00000000)
        return mhpi.d;
    }
  ax = (x<zero.d) ? -x : x;
  ay = (y<zero.d) ? -y : y;
  de = (uy & 0x7ff00000) - (ux & 0x7ff00000);
  if (de>=ep)
    {
      return ((y>zero.d) ? hpi.d : mhpi.d);
    }
  else if (de<=em)
    {
      if (x>zero.d)
        {
          if ((z=ay/ax)<twom1022.d)
            return normalized(ax,ay,y,z);
          else
            return signArctan2(y,z);
        }
      else
        {
          return ((y>zero.d) ? opi.d : mopi.d);
        }
    }
  if (ax<twom500.d || ay<twom500.d)
    {
      ax*=two500.d;
      ay*=two500.d;
    }
  if (ay<ax)
    {
      u=ay/ax;
      t1=134217729.0*(ax);
      t2=((ax)-t1)+t1;
      t3=(ax)-t2;
      t1=134217729.0*(u);
      t4=((u)-t1)+t1;
      t5=(u)-t4;
      v=(ax)*(u);
      vv=(((t2*t4-v)+t2*t5)+t3*t4)+t3*t5;
      du=((ay-v)-vv)/ax;
    }
  else
    {
      u=ax/ay;
      t1=134217729.0*(ay);
      t2=((ay)-t1)+t1;
      t3=(ay)-t2;
      t1=134217729.0*(u);
      t4=((u)-t1)+t1;
      t5=(u)-t4;
      v=(ay)*(u);
      vv=(((t2*t4-v)+t2*t5)+t3*t4)+t3*t5;
      du=((ax-v)-vv)/ay;
    }
  if (x>zero.d)
    {
      if (ay<ax)
        {
          if (u<inv16.d)
            {
              v=u*u;
              zz=du+u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
              if ((z=u+(zz-u1.d*u)) == u+(zz+u1.d*u))
                return signArctan2(y,z);
              t1=134217729.0*(u);
              t2=((u)-t1)+t1;
              t3=(u)-t2;
              t1=134217729.0*(u);
              t4=((u)-t1)+t1;
              t5=(u)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((u)*(du)+(du)*(u))+t8;
              v=t7+t8;
              vv=(t7-v)+t8;
              s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
              t1=(f9.d)+(s1);
              t2=(((f9.d) < 0 ? -(f9.d) : (f9.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f9.d)-t1)+(s1))+(zero.d))+(ff9.d)) : (((((s1)-t1)+(f9.d))+(ff9.d))+(zero.d));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f7.d)+(s1);
              t2=(((f7.d) < 0 ? -(f7.d) : (f7.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f7.d)-t1)+(s1))+(ss1))+(ff7.d)) : (((((s1)-t1)+(f7.d))+(ff7.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f5.d)+(s1);
              t2=(((f5.d) < 0 ? -(f5.d) : (f5.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f5.d)-t1)+(s1))+(ss1))+(ff5.d)) : (((((s1)-t1)+(f5.d))+(ff5.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f3.d)+(s1);
              t2=(((f3.d) < 0 ? -(f3.d) : (f3.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f3.d)-t1)+(s1))+(ss1))+(ff3.d)) : (((((s1)-t1)+(f3.d))+(ff3.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=134217729.0*(u);
              t2=((u)-t1)+t1;
              t3=(u)-t2;
              t1=134217729.0*(s1);
              t4=((s1)-t1)+t1;
              t5=(s1)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((u)*(ss1)+(du)*(s1))+t8;
              s2=t7+t8;
              ss2=(t7-s2)+t8;
              t1=(u)+(s2);
              t2=(((u) < 0 ? -(u) : (u))>((s2) < 0 ? -(s2) : (s2))) ? (((((u)-t1)+(s2))+(ss2))+(du)) : (((((s2)-t1)+(u))+(du))+(ss2));
              s1=t1+t2;
              ss1=(t1-s1)+t2;
              if ((z=s1+(ss1-u5.d*s1)) == s1+(ss1+u5.d*s1))
                return signArctan2(y,z);
              return atan2Mp(x,y,pr);
            }
          else
            {
              i=(two52.d+two8.d*u)-two52.d;
              i-=16;
              t3=u-cij[i][0].d;
              v=(t3)+(du);
              dv=(((t3) < 0 ? -(t3) : (t3))>((du) < 0 ? -(du) : (du))) ? (((t3)-(v))+(du)) : (((du)-(v))+(t3));
              t1=cij[i][1].d;
              t2=cij[i][2].d;
              zz=v*t2+(dv*t2+v*v*(cij[i][3].d+v*(cij[i][4].d+v*(cij[i][5].d+v* cij[i][6].d))));
              if (i<112)
                {
                  if (i<48)
                    u9=u91.d;
                  else
                    u9=u92.d;
                }
              else
                {
                  if (i<176)
                    u9=u93.d;
                  else
                    u9=u94.d;
                }
              if ((z=t1+(zz-u9*t1)) == t1+(zz+u9*t1))
                return signArctan2(y,z);
              t1=u-hij[i][0].d;
              v=(t1)+(du);
              vv=(((t1) < 0 ? -(t1) : (t1))>((du) < 0 ? -(du) : (du))) ? (((t1)-(v))+(du)) : (((du)-(v))+(t1));
              s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+v*(hij[i][14].d+v* hij[i][15].d))));
              t1=(hij[i][9].d)+(s1);
              t2=(((hij[i][9].d) < 0 ? -(hij[i][9].d) : (hij[i][9].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][9].d)-t1)+(s1))+(zero.d))+(hij[i][10].d)) : (((((s1)-t1)+(hij[i][9].d))+(hij[i][10].d))+(zero.d));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][7].d)+(s1);
              t2=(((hij[i][7].d) < 0 ? -(hij[i][7].d) : (hij[i][7].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][7].d)-t1)+(s1))+(ss1))+(hij[i][8].d)) : (((((s1)-t1)+(hij[i][7].d))+(hij[i][8].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][5].d)+(s1);
              t2=(((hij[i][5].d) < 0 ? -(hij[i][5].d) : (hij[i][5].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][5].d)-t1)+(s1))+(ss1))+(hij[i][6].d)) : (((((s1)-t1)+(hij[i][5].d))+(hij[i][6].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][3].d)+(s1);
              t2=(((hij[i][3].d) < 0 ? -(hij[i][3].d) : (hij[i][3].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][3].d)-t1)+(s1))+(ss1))+(hij[i][4].d)) : (((((s1)-t1)+(hij[i][3].d))+(hij[i][4].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][1].d)+(s1);
              t2=(((hij[i][1].d) < 0 ? -(hij[i][1].d) : (hij[i][1].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][1].d)-t1)+(s1))+(ss1))+(hij[i][2].d)) : (((((s1)-t1)+(hij[i][1].d))+(hij[i][2].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              if ((z=s2+(ss2-ub.d*s2)) == s2+(ss2+ub.d*s2))
                return signArctan2(y,z);
              return atan2Mp(x,y,pr);
            }
        }
      else
        {
          if (u<inv16.d)
            {
              v=u*u;
              zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
              t2=(hpi.d)-(u);
              cor=(((hpi.d) < 0 ? -(hpi.d) : (hpi.d))>((u) < 0 ? -(u) : (u))) ? (((hpi.d)-(t2))-(u)) : ((hpi.d)-((u)+(t2)));
              t3=((hpi1.d+cor)-du)-zz;
              if ((z=t2+(t3-u2.d)) == t2+(t3+u2.d))
                return signArctan2(y,z);
              t1=134217729.0*(u);
              t2=((u)-t1)+t1;
              t3=(u)-t2;
              t1=134217729.0*(u);
              t4=((u)-t1)+t1;
              t5=(u)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((u)*(du)+(du)*(u))+t8;
              v=t7+t8;
              vv=(t7-v)+t8;
              s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
              t1=(f9.d)+(s1);
              t2=(((f9.d) < 0 ? -(f9.d) : (f9.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f9.d)-t1)+(s1))+(zero.d))+(ff9.d)) : (((((s1)-t1)+(f9.d))+(ff9.d))+(zero.d));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f7.d)+(s1);
              t2=(((f7.d) < 0 ? -(f7.d) : (f7.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f7.d)-t1)+(s1))+(ss1))+(ff7.d)) : (((((s1)-t1)+(f7.d))+(ff7.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f5.d)+(s1);
              t2=(((f5.d) < 0 ? -(f5.d) : (f5.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f5.d)-t1)+(s1))+(ss1))+(ff5.d)) : (((((s1)-t1)+(f5.d))+(ff5.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f3.d)+(s1);
              t2=(((f3.d) < 0 ? -(f3.d) : (f3.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f3.d)-t1)+(s1))+(ss1))+(ff3.d)) : (((((s1)-t1)+(f3.d))+(ff3.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=134217729.0*(u);
              t2=((u)-t1)+t1;
              t3=(u)-t2;
              t1=134217729.0*(s1);
              t4=((s1)-t1)+t1;
              t5=(s1)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((u)*(ss1)+(du)*(s1))+t8;
              s2=t7+t8;
              ss2=(t7-s2)+t8;
              t1=(u)+(s2);
              t2=(((u) < 0 ? -(u) : (u))>((s2) < 0 ? -(s2) : (s2))) ? (((((u)-t1)+(s2))+(ss2))+(du)) : (((((s2)-t1)+(u))+(du))+(ss2));
              s1=t1+t2;
              ss1=(t1-s1)+t2;
              t1=(hpi.d)-(s1);
              t2=(((hpi.d) < 0 ? -(hpi.d) : (hpi.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hpi.d)-t1)-(s1))-(ss1))+(hpi1.d)) : ((((hpi.d)-((s1)+t1))+(hpi1.d))-(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              if ((z=s2+(ss2-u6.d)) == s2+(ss2+u6.d))
                return signArctan2(y,z);
              return atan2Mp(x,y,pr);
            }
          else
            {
              i=(two52.d+two8.d*u)-two52.d;
              i-=16;
              v=(u-cij[i][0].d)+du;
              zz=hpi1.d-v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+v*(cij[i][5].d+v* cij[i][6].d))));
              t1=hpi.d-cij[i][1].d;
              if (i<112)
                ua=ua1.d;
              else
                ua=ua2.d;
              if ((z=t1+(zz-ua)) == t1+(zz+ua))
                return signArctan2(y,z);
              t1=u-hij[i][0].d;
              v=(t1)+(du);
              vv=(((t1) < 0 ? -(t1) : (t1))>((du) < 0 ? -(du) : (du))) ? (((t1)-(v))+(du)) : (((du)-(v))+(t1));
              s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+v*(hij[i][14].d+v* hij[i][15].d))));
              t1=(hij[i][9].d)+(s1);
              t2=(((hij[i][9].d) < 0 ? -(hij[i][9].d) : (hij[i][9].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][9].d)-t1)+(s1))+(zero.d))+(hij[i][10].d)) : (((((s1)-t1)+(hij[i][9].d))+(hij[i][10].d))+(zero.d));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][7].d)+(s1);
              t2=(((hij[i][7].d) < 0 ? -(hij[i][7].d) : (hij[i][7].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][7].d)-t1)+(s1))+(ss1))+(hij[i][8].d)) : (((((s1)-t1)+(hij[i][7].d))+(hij[i][8].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][5].d)+(s1);
              t2=(((hij[i][5].d) < 0 ? -(hij[i][5].d) : (hij[i][5].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][5].d)-t1)+(s1))+(ss1))+(hij[i][6].d)) : (((((s1)-t1)+(hij[i][5].d))+(hij[i][6].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][3].d)+(s1);
              t2=(((hij[i][3].d) < 0 ? -(hij[i][3].d) : (hij[i][3].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][3].d)-t1)+(s1))+(ss1))+(hij[i][4].d)) : (((((s1)-t1)+(hij[i][3].d))+(hij[i][4].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][1].d)+(s1);
              t2=(((hij[i][1].d) < 0 ? -(hij[i][1].d) : (hij[i][1].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][1].d)-t1)+(s1))+(ss1))+(hij[i][2].d)) : (((((s1)-t1)+(hij[i][1].d))+(hij[i][2].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=(hpi.d)-(s2);
              t2=(((hpi.d) < 0 ? -(hpi.d) : (hpi.d))>((s2) < 0 ? -(s2) : (s2))) ? (((((hpi.d)-t1)-(s2))-(ss2))+(hpi1.d)) : ((((hpi.d)-((s2)+t1))+(hpi1.d))-(ss2));
              s1=t1+t2;
              ss1=(t1-s1)+t2;
              if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))
                return signArctan2(y,z);
              return atan2Mp(x,y,pr);
            }
        }
    }
  else
    {
      if (ax<ay)
        {
          if (u<inv16.d)
            {
              v=u*u;
              zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
              t2=(hpi.d)+(u);
              cor=(((hpi.d) < 0 ? -(hpi.d) : (hpi.d))>((u) < 0 ? -(u) : (u))) ? (((hpi.d)-(t2))+(u)) : (((u)-(t2))+(hpi.d));
              t3=((hpi1.d+cor)+du)+zz;
              if ((z=t2+(t3-u3.d)) == t2+(t3+u3.d))
                return signArctan2(y,z);
              t1=134217729.0*(u);
              t2=((u)-t1)+t1;
              t3=(u)-t2;
              t1=134217729.0*(u);
              t4=((u)-t1)+t1;
              t5=(u)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((u)*(du)+(du)*(u))+t8;
              v=t7+t8;
              vv=(t7-v)+t8;
              s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
              t1=(f9.d)+(s1);
              t2=(((f9.d) < 0 ? -(f9.d) : (f9.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f9.d)-t1)+(s1))+(zero.d))+(ff9.d)) : (((((s1)-t1)+(f9.d))+(ff9.d))+(zero.d));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f7.d)+(s1);
              t2=(((f7.d) < 0 ? -(f7.d) : (f7.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f7.d)-t1)+(s1))+(ss1))+(ff7.d)) : (((((s1)-t1)+(f7.d))+(ff7.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f5.d)+(s1);
              t2=(((f5.d) < 0 ? -(f5.d) : (f5.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f5.d)-t1)+(s1))+(ss1))+(ff5.d)) : (((((s1)-t1)+(f5.d))+(ff5.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f3.d)+(s1);
              t2=(((f3.d) < 0 ? -(f3.d) : (f3.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f3.d)-t1)+(s1))+(ss1))+(ff3.d)) : (((((s1)-t1)+(f3.d))+(ff3.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=134217729.0*(u);
              t2=((u)-t1)+t1;
              t3=(u)-t2;
              t1=134217729.0*(s1);
              t4=((s1)-t1)+t1;
              t5=(s1)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((u)*(ss1)+(du)*(s1))+t8;
              s2=t7+t8;
              ss2=(t7-s2)+t8;
              t1=(u)+(s2);
              t2=(((u) < 0 ? -(u) : (u))>((s2) < 0 ? -(s2) : (s2))) ? (((((u)-t1)+(s2))+(ss2))+(du)) : (((((s2)-t1)+(u))+(du))+(ss2));
              s1=t1+t2;
              ss1=(t1-s1)+t2;
              t1=(hpi.d)+(s1);
              t2=(((hpi.d) < 0 ? -(hpi.d) : (hpi.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hpi.d)-t1)+(s1))+(ss1))+(hpi1.d)) : (((((s1)-t1)+(hpi.d))+(hpi1.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              if ((z=s2+(ss2-u7.d)) == s2+(ss2+u7.d))
                return signArctan2(y,z);
              return atan2Mp(x,y,pr);
            }
          else
            {
              i=(two52.d+two8.d*u)-two52.d;
              i-=16;
              v=(u-cij[i][0].d)+du;
              zz=hpi1.d+v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+v*(cij[i][5].d+v* cij[i][6].d))));
              t1=hpi.d+cij[i][1].d;
              if (i<112)
                ua=ua1.d;
              else
                ua=ua2.d;
              if ((z=t1+(zz-ua)) == t1+(zz+ua))
                return signArctan2(y,z);
              t1=u-hij[i][0].d;
              v=(t1)+(du);
              vv=(((t1) < 0 ? -(t1) : (t1))>((du) < 0 ? -(du) : (du))) ? (((t1)-(v))+(du)) : (((du)-(v))+(t1));
              s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+v*(hij[i][14].d+v* hij[i][15].d))));
              t1=(hij[i][9].d)+(s1);
              t2=(((hij[i][9].d) < 0 ? -(hij[i][9].d) : (hij[i][9].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][9].d)-t1)+(s1))+(zero.d))+(hij[i][10].d)) : (((((s1)-t1)+(hij[i][9].d))+(hij[i][10].d))+(zero.d));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][7].d)+(s1);
              t2=(((hij[i][7].d) < 0 ? -(hij[i][7].d) : (hij[i][7].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][7].d)-t1)+(s1))+(ss1))+(hij[i][8].d)) : (((((s1)-t1)+(hij[i][7].d))+(hij[i][8].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][5].d)+(s1);
              t2=(((hij[i][5].d) < 0 ? -(hij[i][5].d) : (hij[i][5].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][5].d)-t1)+(s1))+(ss1))+(hij[i][6].d)) : (((((s1)-t1)+(hij[i][5].d))+(hij[i][6].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][3].d)+(s1);
              t2=(((hij[i][3].d) < 0 ? -(hij[i][3].d) : (hij[i][3].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][3].d)-t1)+(s1))+(ss1))+(hij[i][4].d)) : (((((s1)-t1)+(hij[i][3].d))+(hij[i][4].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][1].d)+(s1);
              t2=(((hij[i][1].d) < 0 ? -(hij[i][1].d) : (hij[i][1].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][1].d)-t1)+(s1))+(ss1))+(hij[i][2].d)) : (((((s1)-t1)+(hij[i][1].d))+(hij[i][2].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=(hpi.d)+(s2);
              t2=(((hpi.d) < 0 ? -(hpi.d) : (hpi.d))>((s2) < 0 ? -(s2) : (s2))) ? (((((hpi.d)-t1)+(s2))+(ss2))+(hpi1.d)) : (((((s2)-t1)+(hpi.d))+(hpi1.d))+(ss2));
              s1=t1+t2;
              ss1=(t1-s1)+t2;
              if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))
                return signArctan2(y,z);
              return atan2Mp(x,y,pr);
            }
        }
      else
        {
          if (u<inv16.d)
            {
              v=u*u;
              zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
              t2=(opi.d)-(u);
              cor=(((opi.d) < 0 ? -(opi.d) : (opi.d))>((u) < 0 ? -(u) : (u))) ? (((opi.d)-(t2))-(u)) : ((opi.d)-((u)+(t2)));
              t3=((opi1.d+cor)-du)-zz;
              if ((z=t2+(t3-u4.d)) == t2+(t3+u4.d))
                return signArctan2(y,z);
              t1=134217729.0*(u);
              t2=((u)-t1)+t1;
              t3=(u)-t2;
              t1=134217729.0*(u);
              t4=((u)-t1)+t1;
              t5=(u)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((u)*(du)+(du)*(u))+t8;
              v=t7+t8;
              vv=(t7-v)+t8;
              s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
              t1=(f9.d)+(s1);
              t2=(((f9.d) < 0 ? -(f9.d) : (f9.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f9.d)-t1)+(s1))+(zero.d))+(ff9.d)) : (((((s1)-t1)+(f9.d))+(ff9.d))+(zero.d));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f7.d)+(s1);
              t2=(((f7.d) < 0 ? -(f7.d) : (f7.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f7.d)-t1)+(s1))+(ss1))+(ff7.d)) : (((((s1)-t1)+(f7.d))+(ff7.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f5.d)+(s1);
              t2=(((f5.d) < 0 ? -(f5.d) : (f5.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f5.d)-t1)+(s1))+(ss1))+(ff5.d)) : (((((s1)-t1)+(f5.d))+(ff5.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(f3.d)+(s1);
              t2=(((f3.d) < 0 ? -(f3.d) : (f3.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f3.d)-t1)+(s1))+(ss1))+(ff3.d)) : (((((s1)-t1)+(f3.d))+(ff3.d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=134217729.0*(u);
              t2=((u)-t1)+t1;
              t3=(u)-t2;
              t1=134217729.0*(s1);
              t4=((s1)-t1)+t1;
              t5=(s1)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((u)*(ss1)+(du)*(s1))+t8;
              s2=t7+t8;
              ss2=(t7-s2)+t8;
              t1=(u)+(s2);
              t2=(((u) < 0 ? -(u) : (u))>((s2) < 0 ? -(s2) : (s2))) ? (((((u)-t1)+(s2))+(ss2))+(du)) : (((((s2)-t1)+(u))+(du))+(ss2));
              s1=t1+t2;
              ss1=(t1-s1)+t2;
              t1=(opi.d)-(s1);
              t2=(((opi.d) < 0 ? -(opi.d) : (opi.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((opi.d)-t1)-(s1))-(ss1))+(opi1.d)) : ((((opi.d)-((s1)+t1))+(opi1.d))-(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              if ((z=s2+(ss2-u8.d)) == s2+(ss2+u8.d))
                return signArctan2(y,z);
              return atan2Mp(x,y,pr);
            }
          else
            {
              i=(two52.d+two8.d*u)-two52.d;
              i-=16;
              v=(u-cij[i][0].d)+du;
              zz=opi1.d-v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+v*(cij[i][5].d+v* cij[i][6].d))));
              t1=opi.d-cij[i][1].d;
              if (i<112)
                ua=ua1.d;
              else
                ua=ua2.d;
              if ((z=t1+(zz-ua)) == t1+(zz+ua))
                return signArctan2(y,z);
              t1=u-hij[i][0].d;
              v=(t1)+(du);
              vv=(((t1) < 0 ? -(t1) : (t1))>((du) < 0 ? -(du) : (du))) ? (((t1)-(v))+(du)) : (((du)-(v))+(t1));
              s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+v*(hij[i][14].d+v* hij[i][15].d))));
              t1=(hij[i][9].d)+(s1);
              t2=(((hij[i][9].d) < 0 ? -(hij[i][9].d) : (hij[i][9].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][9].d)-t1)+(s1))+(zero.d))+(hij[i][10].d)) : (((((s1)-t1)+(hij[i][9].d))+(hij[i][10].d))+(zero.d));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][7].d)+(s1);
              t2=(((hij[i][7].d) < 0 ? -(hij[i][7].d) : (hij[i][7].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][7].d)-t1)+(s1))+(ss1))+(hij[i][8].d)) : (((((s1)-t1)+(hij[i][7].d))+(hij[i][8].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][5].d)+(s1);
              t2=(((hij[i][5].d) < 0 ? -(hij[i][5].d) : (hij[i][5].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][5].d)-t1)+(s1))+(ss1))+(hij[i][6].d)) : (((((s1)-t1)+(hij[i][5].d))+(hij[i][6].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][3].d)+(s1);
              t2=(((hij[i][3].d) < 0 ? -(hij[i][3].d) : (hij[i][3].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][3].d)-t1)+(s1))+(ss1))+(hij[i][4].d)) : (((((s1)-t1)+(hij[i][3].d))+(hij[i][4].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=134217729.0*(v);
              t2=((v)-t1)+t1;
              t3=(v)-t2;
              t1=134217729.0*(s2);
              t4=((s2)-t1)+t1;
              t5=(s2)-t4;
              t1=t2*t4;
              t6=t2*t5+t3*t4;
              t7=t1+t6;
              t8=((t1-t7)+t6)+t3*t5;
              t8=((v)*(ss2)+(vv)*(s2))+t8;
              s1=t7+t8;
              ss1=(t7-s1)+t8;
              t1=(hij[i][1].d)+(s1);
              t2=(((hij[i][1].d) < 0 ? -(hij[i][1].d) : (hij[i][1].d))>((s1) < 0 ? -(s1) : (s1))) ? (((((hij[i][1].d)-t1)+(s1))+(ss1))+(hij[i][2].d)) : (((((s1)-t1)+(hij[i][1].d))+(hij[i][2].d))+(ss1));
              s2=t1+t2;
              ss2=(t1-s2)+t2;
              t1=(opi.d)-(s2);
              t2=(((opi.d) < 0 ? -(opi.d) : (opi.d))>((s2) < 0 ? -(s2) : (s2))) ? (((((opi.d)-t1)-(s2))-(ss2))+(opi1.d)) : ((((opi.d)-((s2)+t1))+(opi1.d))-(ss2));
              s1=t1+t2;
              ss1=(t1-s1)+t2;
              if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))
                return signArctan2(y,z);
              return atan2Mp(x,y,pr);
            }
        }
    }
}
===========================================================================
Comment 1 Bruno Haible 2002-06-07 05:56:02 UTC
Fix:
Unknown.
Comment 2 Dara Hazeghi 2003-05-09 20:57:48 UTC
From: Dara Hazeghi <dhazeghi@yahoo.com>
To: gcc-gnats@gcc.gnu.org, bruno@clisp.org
Cc:  
Subject: Re: target/6954: [SH] ICE in output_branch, at config/sh/sh.c
Date: Fri, 9 May 2003 20:57:48 -0700

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit- 
 trail&database=gcc&pr=6954
 
 Hello,
 
 I am not able to reproduce the bug in the report on either gcc 3.2.3,  
 3.3 branch or mainline (20030509). Bruno, are you still able to  
 reproduce this bug, using a current release of gcc? Thanks,
 
 Dara
 
Comment 3 Giovanni Bajo 2003-05-10 07:46:32 UTC
State-Changed-From-To: open->feedback
State-Changed-Why: See Dara's question.
Comment 4 dank 2003-05-26 23:13:19 UTC
I got the same error when compiling glibc-2.2.4, 
in file sysdeps/ieee754/dbl-64/s_tan.c, line 466,
with gcc-3.2.3.  I was using options -O -m4 -ml 
when building glibc.  My gcc-3.2.3 was configured
similarly to your gcc-3.1.  I had not applied the patches
recommended by the linux-sh project; perhaps those
resolve the problem, I'll see. 
Comment 5 dank 2003-05-26 23:14:12 UTC
Crap, I meant glibc-2.2.5.
Comment 6 Dara Hazeghi 2003-05-26 23:25:23 UTC
Hello,

could you please give gcc 3.3 a try? That way we know if we've fixed the bug or not... Thanks,

Dara
Comment 7 dank 2003-05-26 23:34:41 UTC
Created attachment 4084 [details]
Preprocessed output of file causing crash.

Compile with sh4-linux-gcc bug2.c -c -O -m4 -ml -fPIC to reproduce crash.
Removing either -O or -fPIC hides the problem.
Comment 8 Dara Hazeghi 2003-05-26 23:53:12 UTC
Hello,

with gcc 3.2.3 on your new testcase with -O -m4 -ml -fPIC, I get the same illegal instruction,  with 
gcc 3.3 branch and mainline (20030525) and the above options the code compiles successfully. 
Shall we close this report then? Thanks,

Dara
Comment 9 Andrew Pinski 2003-05-27 13:16:11 UTC
Closing as it is fixed in 3.3 and on the mainline.