1/* PR debug/45015 */
2/* { dg-do compile } */
3/* { dg-options "-O2 -g" } */
4
5unsigned int
6foo (unsigned int *x, const unsigned int *y, int z, unsigned int w)
7{
8  unsigned int a, b, c, s;
9  int j;
10  j = -z;
11  x -= j;
12  y -= j;
13  a = 0;
14  do
15    {
16      __asm__ ("move.l %2, %0; move.l %3, %1" : "=d" (b), "=d" (c) : "g<>" (y[j]), "d" (w));
17      c += a;
18      a = (c < a) + b;
19      s = x[j];
20      c = s + c;
21      a += (c < s);
22      x[j] = c;
23    }
24  while (++j != 0);
25  return a;
26}
27