1 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
2 
3 int
foo(void)4 foo (void)
5 {
6   int x;
7 
8   asm goto ("": "=a" (x) : : : lab);
9  lab:
10   return x;
11 }
12 
13 int
foo2(void)14 foo2 (void)
15 {
16   int x, y;
17 
18   asm goto ("": "=a" (x), "=d" (y) : : : lab, lab2);
19  lab:
20   return x;
21  lab2:
22   return y;
23 }
24 
25 int
foo3(void)26 foo3 (void)
27 {
28   int x, y, z;
29 
30   asm goto ("": "=a" (x), "=d" (y), "=c" (z) : : : lab, lab2, lab3);
31  lab:
32   return x;
33  lab2:
34   return y;
35  lab3:
36   return z;
37 }
38 
39 int
foo4(void)40 foo4 (void)
41 {
42   int x, y, z, v;
43 
44   asm goto ("": "=a" (x), "=d" (y), "=c" (z) , "=b" (v) : : : lab, lab2, lab3, lab4);
45  lab:
46   return x;
47  lab2:
48   return y;
49  lab3:
50   return z;
51  lab4:
52   return v;
53 }
54 
55 int
foo5(void)56 foo5 (void)
57 {
58   int x, y, z, v, w;
59 
60   asm goto ("": "=a" (x), "=d" (y), "=c" (z), "=b" (v), "=S" (w) : : : lab, lab2, lab3, lab4, lab5);
61  lab:
62   return x;
63  lab2:
64   return y;
65  lab3:
66   return z;
67  lab4:
68   return v;
69  lab5:
70   return w;
71 }
72 
73 int
foo6(void)74 foo6 (void)
75 {
76   int x = 0, y = 1, z = 2, v = 3, w = 4;
77 
78   asm goto ("": "+a" (x), "+d" (y), "+c" (z), "+b" (v), "+S" (w) : : : lab, lab2, lab3, lab4, lab5);
79  lab:
80   return x;
81  lab2:
82   return y;
83  lab3:
84   return z;
85  lab4:
86   return v;
87  lab5:
88   return w;
89 }
90