/* PR rtl-optimization/17825 */ #ifdef __i386__ register unsigned int reg __asm ("esi"); #elif defined __x86_64__ register unsigned int reg __asm ("r14"); #else unsigned int reg; #endif struct S { unsigned int h[8]; } *b; unsigned int c; void foo (int); void bar (void) { unsigned int j, k, l, m; j = (reg & 0xffff) | ((b->h[2] & 0xffff) << 16); k = c & 0xffff; if (k == 0) foo (0); l = (j / k) & 0xffff; m = (j % k) & 0xffff; reg = (reg & 0xffff0000) | l; b->h[2] = (b->h[2] & 0xffff0000) | m; }