/* PR debug/45015 */ /* { dg-do compile } */ /* { dg-options "-O2 -g" } */ unsigned int foo (unsigned int *x, const unsigned int *y, int z, unsigned int w) { unsigned int a, b, c, s; int j; j = -z; x -= j; y -= j; a = 0; do { __asm__ ("move.l %2, %0; move.l %3, %1" : "=d" (b), "=d" (c) : "g<>" (y[j]), "d" (w)); c += a; a = (c < a) + b; s = x[j]; c = s + c; a += (c < s); x[j] = c; } while (++j != 0); return a; }