1 /* PR target/91102 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2" } */
4
5 int
6 foo (long d, long l)
7 {
8 register long e asm ("x1") = d;
9 register long f asm("x2") = l;
10 asm ("" : : "r" (e), "r" (f));
11 return 3;
12 }
13
14 struct T { int i; int j; };
15 union S { long h; struct T t; };
16
17 void
18 bar (union S b)
19 {
20 while (1)
21 {
22 union S c = b;
23 c.t.j++;
24 b.h = foo (b.h, c.h);
25 }
26 }