PR middle-end/77357 - strlen of constant strings not folded
[official-gcc.git] / gcc / testsuite / gcc.dg / dfp / ddmode-ice.c
blob19f3038010be98ef8eec5cc9533f02031c628299
1 /* { dg-do compile } */
2 /* { dg-options "-O1" } */
4 /* This used to result in an ICE. */
6 _Decimal64 y[258][258];
7 _Decimal64 dd[258][258];
8 _Decimal64 ry[258][258];
9 _Decimal64
10 foo (void)
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;
36 jp = j + 1;
37 for (i = i1p; i <= i2m; i++)
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;
53 while (1);