1 /* { dg-do compile } */
2 /* { dg-options "-mips16" } */
3 extern void abort();
4 
5 int i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9;
6 int j_0, j_1, j_2, j_3, j_4, j_5, j_6, j_7, j_8, j_9;
7 
main()8 int main()
9 {
10   register int *x1 = &i_1;
11   register int *x2 = &i_2;
12   register int *x3 = &i_3;
13   register int *x4 = &i_4;
14   register int *x5 = &i_5;
15   register int *x6 = &i_6;
16   register int *x7 = &i_7;
17   register int *x8 = &i_8;
18   register int *x9 = &i_9;
19 
20   register int *y0 = &j_0;
21   register int *y1 = &j_1;
22   register int *y2 = &i_2;
23   register int *y3 = &j_3;
24   register int *y4 = &j_4;
25   register int *y5 = &j_5;
26   register int *y6 = &j_6;
27   register int *y7 = &j_7;
28   register int *y8 = &j_8;
29   register int *y9 = &j_9;
30 
31   asm volatile ("" : "=r" (x2) : "0" (x2));
32   asm volatile ("" : "=r" (x3) : "0" (x3));
33   asm volatile ("" : "=r" (x4) : "0" (x4));
34   asm volatile ("" : "=r" (x5) : "0" (x5));
35   asm volatile ("" : "=r" (x6) : "0" (x6));
36   asm volatile ("" : "=r" (x7) : "0" (x7));
37   asm volatile ("" : "=r" (x8) : "0" (x8));
38   asm volatile ("" : "=r" (x9) : "0" (x9));
39 
40   asm volatile ("" : "=r" (y0) : "0" (y0));
41   asm volatile ("" : "=r" (y1) : "0" (y1));
42   asm volatile ("" : "=r" (y2) : "0" (y2));
43   asm volatile ("" : "=r" (y3) : "0" (y3));
44   asm volatile ("" : "=r" (y4) : "0" (y4));
45   asm volatile ("" : "=r" (y5) : "0" (y5));
46   asm volatile ("" : "=r" (y6) : "0" (y6));
47   asm volatile ("" : "=r" (y7) : "0" (y7));
48   asm volatile ("" : "=r" (y8) : "0" (y8));
49   asm volatile ("" : "=r" (y9) : "0" (y9));
50 
51   asm volatile ("" : "=r" (x1) : "0" (x1));
52   asm volatile ("" : "=r" (x2) : "0" (x2));
53   asm volatile ("" : "=r" (x3) : "0" (x3));
54   asm volatile ("" : "=r" (x4) : "0" (x4));
55   asm volatile ("" : "=r" (x5) : "0" (x5));
56   asm volatile ("" : "=r" (x6) : "0" (x6));
57   asm volatile ("" : "=r" (x7) : "0" (x7));
58   asm volatile ("" : "=r" (x8) : "0" (x8));
59   asm volatile ("" : "=r" (x9) : "0" (x9));
60 
61   asm volatile ("" : "=r" (y0) : "0" (y0));
62   asm volatile ("" : "=r" (y1) : "0" (y1));
63   asm volatile ("" : "=r" (y2) : "0" (y2));
64   asm volatile ("" : "=r" (y3) : "0" (y3));
65   asm volatile ("" : "=r" (y4) : "0" (y4));
66   asm volatile ("" : "=r" (y5) : "0" (y5));
67   asm volatile ("" : "=r" (y6) : "0" (y6));
68   asm volatile ("" : "=r" (y7) : "0" (y7));
69   asm volatile ("" : "=r" (y8) : "0" (y8));
70   asm volatile ("" : "=r" (y9) : "0" (y9));
71 
72   if (y0 != &j_0) abort ();
73   if (y1 != &j_1) abort ();
74   if (y2 != &j_2) abort ();
75   if (y3 != &j_3) abort ();
76   if (y4 != &j_4) abort ();
77   if (y5 != &j_5) abort ();
78   if (y6 != &j_6) abort ();
79   if (y7 != &j_7) abort ();
80   if (y8 != &j_8) abort ();
81   if (y9 != &j_9) abort ();
82   return 0;
83 }
84