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
bar(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 }
31