1//Original:/testcases/core/c_loopsetup_nested/c_loopsetup_nested.dsp
2// Spec Reference: loopsetup nested inside
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9INIT_R_REGS 0;
10
11ASTAT = r0;
12
13//p0 = 2;
14P1 = 3;
15P2 = 4;
16P3 = 5;
17P4 = 6;
18P5 = 7;
19SP = 8;
20FP = 9;
21
22R0 = 0x05;
23R1 = 0x10;
24R2 = 0x20;
25R3 = 0x30;
26R4 = 0x40 (X);
27R5 = 0x50 (X);
28R6 = 0x60 (X);
29R7 = 0x70 (X);
30LSETUP ( start1 , end1 ) LC0 = P1;
31start1: R0 += 1;
32 R1 += -2;
33LSETUP ( start2 , end2 ) LC1 = P2;
34start2: R4 += 4;
35end2: R5 += -5;
36 R3 += 1;
37end1: R2 += 3;
38 R3 += 4;
39LSETUP ( start3 , end3 ) LC1 = P3;
40start3: R6 += 6;
41LSETUP ( start4 , end4 ) LC0 = P4 >> 1;
42start4: R0 += 1;
43 R1 += -2;
44end4: R2 += 3;
45 R3 += 4;
46end3: R7 += -7;
47 R3 += 1;
48CHECKREG r0, 0x00000017;
49CHECKREG r1, 0xFFFFFFEC;
50CHECKREG r2, 0x00000056;
51CHECKREG r3, 0x0000004C;
52CHECKREG r4, 0x00000070;
53CHECKREG r5, 0x00000014;
54CHECKREG r6, 0x0000007E;
55CHECKREG r7, 0x0000004D;
56
57R0 = 0x05;
58R1 = 0x10;
59R2 = 0x20;
60R3 = 0x30;
61R4 = 0x40 (X);
62R5 = 0x50 (X);
63R6 = 0x60 (X);
64R7 = 0x70 (X);
65LSETUP ( start5 , end5 ) LC0 = P5;
66start5: R4 += 1;
67LSETUP ( start6 , end6 ) LC1 = SP >> 1;
68start6: R6 += 4;
69end6: R7 += -5;
70 R3 += 6;
71end5: R5 += -2;
72 R3 += 3;
73CHECKREG r0, 0x00000005;
74CHECKREG r1, 0x00000010;
75CHECKREG r2, 0x00000020;
76CHECKREG r3, 0x0000005D;
77CHECKREG r4, 0x00000047;
78CHECKREG r5, 0x00000042;
79CHECKREG r6, 0x000000D0;
80CHECKREG r7, 0xFFFFFFE4;
81LSETUP ( start7 , end7 ) LC0 = FP;
82start7: R4 += 4;
83end7: R5 += -5;
84 R3 += 6;
85CHECKREG r0, 0x00000005;
86CHECKREG r1, 0x00000010;
87CHECKREG r2, 0x00000020;
88CHECKREG r3, 0x00000063;
89CHECKREG r4, 0x0000006B;
90CHECKREG r5, 0x00000015;
91CHECKREG r6, 0x000000D0;
92CHECKREG r7, 0xFFFFFFE4;
93
94P1 = 12;
95P2 = 14;
96P3 = 16;
97P4 = 18;
98P5 = 20;
99SP = 22;
100FP = 24;
101
102R0 = 0x05;
103R1 = 0x10;
104R2 = 0x20;
105R3 = 0x30;
106R4 = 0x40 (X);
107R5 = 0x50 (X);
108R6 = 0x60 (X);
109R7 = 0x70 (X);
110LSETUP ( start11 , end11 ) LC1 = P1;
111start11: R0 += 1;
112 R1 += -1;
113LSETUP ( start15 , end15 ) LC0 = P5;
114start15: R4 += 1;
115end15: R5 += -1;
116 R3 += 1;
117end11: R2 += 1;
118 R3 += 1;
119LSETUP ( start13 , end13 ) LC1 = P3;
120start13: R6 += 1;
121LSETUP ( start12 , end12 ) LC0 = P2;
122start12: R4 += 1;
123end12: R5 += -1;
124 R3 += 1;
125end13: R7 += -1;
126 R3 += 1;
127CHECKREG r0, 0x00000011;
128CHECKREG r1, 0x00000004;
129CHECKREG r2, 0x0000002C;
130CHECKREG r3, 0x0000004E;
131CHECKREG r4, 0x00000210;
132CHECKREG r5, 0xFFFFFE80;
133CHECKREG r6, 0x00000070;
134CHECKREG r7, 0x00000060;
135
136R0 = 0x05;
137R1 = 0x10;
138R2 = 0x20;
139R3 = 0x30;
140R4 = 0x40 (X);
141R5 = 0x50 (X);
142R6 = 0x60 (X);
143R7 = 0x70 (X);
144LSETUP ( start14 , end14 ) LC0 = P4;
145start14: R0 += 1;
146 R1 += -1;
147LSETUP ( start16 , end16 ) LC1 = SP;
148start16: R6 += 1;
149end16: R7 += -1;
150 R3 += 1;
151LSETUP ( start17 , end17 ) LC1 = FP >> 1;
152start17: R4 += 1;
153end17: R5 += -1;
154 R3 += 1;
155end14: R2 += 1;
156 R3 += 1;
157CHECKREG r0, 0x00000017;
158CHECKREG r1, 0xFFFFFFFE;
159CHECKREG r2, 0x00000032;
160CHECKREG r3, 0x00000055;
161CHECKREG r4, 0x00000118;
162CHECKREG r5, 0xFFFFFF78;
163CHECKREG r6, 0x000001EC;
164CHECKREG r7, 0xFFFFFEE4;
165
166pass
167