(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
dfp/
ddmode-ice.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O1" } */
       3  
       4  /* This used to result in an ICE.  */
       5  
       6  _Decimal64 y[258][258];
       7  _Decimal64 dd[258][258];
       8  _Decimal64 ry[258][258];
       9  _Decimal64
      10  foo (void)
      11  {
      12    int i;
      13    int j;
      14    int m;
      15    int im;
      16    int jm;
      17    int ip;
      18    int jp;
      19    int i2m;
      20    int i1p;
      21    _Decimal64 a;
      22    _Decimal64 b;
      23    _Decimal64 c;
      24    _Decimal64 qi;
      25    _Decimal64 qj;
      26    _Decimal64 xx;
      27    _Decimal64 yx;
      28    _Decimal64 xy;
      29    _Decimal64 yy;
      30    _Decimal64 rel;
      31    _Decimal64 qxx;
      32    _Decimal64 qyy;
      33    _Decimal64 qxy;
      34    do
      35      {
      36        jp = j + 1;
      37        for (i = i1p; i <= i2m; i++)
      38  	{
      39  	  ip = i + 1;
      40  	  yx = y[ip][j] - y[im][j];
      41  	  yy = y[i][jp] - y[i][jm];
      42  	  a = 0.25dd * (xy * xy + yy * yy);
      43  	  b = 0.25dd * (xx * xx + yx * yx);
      44  	  c = 0.125dd * (xx * xy + yx * yy);
      45  	  qj = 0.0dd;
      46  	  dd[i][m] = b + a * rel + b;
      47  	  qxx = y[ip][j] - 2.0dd * y[i][j] + y[im][j];
      48  	  qyy = y[i][jp] - 2.0dd * y[i][j] + y[i][jm];
      49  	  qxy = y[ip][jp] - y[ip][jm] - y[im][jp] + y[im][jm];
      50  	  ry[i][m] = a * qxx + b * qyy - c * qxy + yx * qi + yy * qj;
      51  	}
      52      }
      53    while (1);
      54  }