No empty .Rs/.Re
[netbsd-mini2440.git] / gnu / dist / gcc4 / gcc / testsuite / gcc.dg / tree-ssa / pr24627.c
blob011410cbb37f3c0d0407e7274ea009b119b32c89
1 /* { dg-do run } */
2 /* { dg-options "-O" } */
4 extern void abort (void);
5 typedef unsigned int u_int32;
7 typedef struct {
8 union {u_int32 Xl_ui;} Ul_i;
9 union {u_int32 Xl_uf;} Ul_f;
10 } l_fp;
12 void
13 dolfptoa (short ndec)
15 l_fp work, ftmp;
17 work.Ul_i.Xl_ui = 0;
18 work.Ul_f.Xl_uf = 0x535f3d8;
20 while (ndec > 0)
22 u_int32 lo_tmp;
23 u_int32 hi_tmp;
25 ndec--;
26 work.Ul_i.Xl_ui = 0;
27 work.Ul_i.Xl_ui <<= 1;
28 if ((work.Ul_f.Xl_uf) & 0x80000000)
29 (work.Ul_i.Xl_ui) |= 0x1;
30 (work.Ul_f.Xl_uf) <<= 1;
32 ftmp = work;
33 (work.Ul_i.Xl_ui) <<= 1;
34 if ((work.Ul_f.Xl_uf) & 0x80000000)
35 (work.Ul_i.Xl_ui) |= 0x1;
36 (work.Ul_f.Xl_uf) <<= 1;
38 (work.Ul_i.Xl_ui) <<= 1;
39 if ((work.Ul_f.Xl_uf) & 0x80000000)
40 (work.Ul_i.Xl_ui) |= 0x1;
41 (work.Ul_f.Xl_uf) <<= 1;
43 lo_tmp = ((work.Ul_f.Xl_uf) & 0xffff) + ((ftmp.Ul_f.Xl_uf) & 0xffff);
44 hi_tmp = (((work.Ul_f.Xl_uf) >> 16) & 0xffff)
45 + (((ftmp.Ul_f.Xl_uf) >> 16) & 0xffff);
47 if (lo_tmp & 0x10000)
48 hi_tmp++;
50 (work.Ul_f.Xl_uf) = ((hi_tmp & 0xffff) << 16) | (lo_tmp & 0xffff);
51 (work.Ul_i.Xl_ui) += (ftmp.Ul_i.Xl_ui);
53 if (hi_tmp & 0x10000)
54 (work.Ul_i.Xl_ui)++;
57 if (!(work.Ul_i.Xl_ui < 10))
58 abort ();
62 int main()
64 dolfptoa(6);
65 return 0;