OSDN Git Service

Backported from mainline
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / compile / 20041119-1.c
1 /* PR rtl-optimization/17825 */
2 #ifdef __i386__
3 register unsigned int reg __asm ("esi");
4 #elif defined __x86_64__
5 register unsigned int reg __asm ("r14");
6 #else
7 unsigned int reg;
8 #endif
9
10 struct S
11 {
12   unsigned int h[8];
13 } *b;
14 unsigned int c;
15 void foo (int);
16
17 void
18 bar (void)
19 {
20   unsigned int j, k, l, m;
21
22   j = (reg & 0xffff) | ((b->h[2] & 0xffff) << 16);
23   k = c & 0xffff;
24   if (k == 0)
25     foo (0);
26   l = (j / k) & 0xffff;
27   m = (j % k) & 0xffff;
28   reg = (reg & 0xffff0000) | l;
29   b->h[2] = (b->h[2] & 0xffff0000) | m;
30 }