1//Original:/testcases/core/c_loopsetup_nested_bot/c_loopsetup_nested_bot.dsp
2// Spec Reference: loopsetup nested same bottom
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9INIT_R_REGS 0;
10ASTAT = r0;
11
12//p0 = 2;
13P1 = 2;
14P2 = 4;
15P3 = 6;
16P4 = 8;
17P5 = 10;
18SP = 12;
19FP = 14;
20
21R0 = 0x05;
22R1 = 0x10;
23R2 = 0x20;
24R3 = 0x32;
25R4 = 0x46 (X);
26R5 = 0x50 (X);
27R6 = 0x68 (X);
28R7 = 0x72 (X);
29LSETUP ( start1 , end1 ) LC0 = P1;
30start1: R0 += 1;
31 R1 += -2;
32LSETUP ( start2 , end2 ) LC1 = P2;
33start2: R4 += 4;
34end2: R5 += -5;
35 R3 += 1;
36end1: R2 += 3;
37 R3 += 4;
38LSETUP ( start3 , end3 ) LC1 = P3;
39start3: R6 += 6;
40LSETUP ( start4 , end3 ) LC0 = P4 >> 1;
41start4: R0 += 1;
42 R1 += -2;
43end4: R2 += 3;
44 R3 += 4;
45end3: R7 += -7;
46 R3 += 1;
47CHECKREG r0, 0x00000010;
48CHECKREG r1, 0xFFFFFFFA;
49CHECKREG r2, 0x00000041;
50CHECKREG r3, 0x0000005D;
51CHECKREG r4, 0x00000066;
52CHECKREG r5, 0x00000028;
53CHECKREG r6, 0x0000008C;
54CHECKREG r7, 0x00000033;
55
56R0 = 0x05;
57R1 = 0x10;
58R2 = 0x14;
59R3 = 0x18;
60R4 = 0x20;
61R5 = 0x12;
62R6 = 0x24;
63R7 = 0x16;
64LSETUP ( start5 , end5 ) LC0 = P5;
65start5: R4 += 1;
66LSETUP ( start6 , end5 ) LC1 = SP >> 1;
67start6: R6 += 4;
68end6: R7 += -5;
69 R3 += 6;
70end5: R5 += -2;
71 R3 += 3;
72CHECKREG r0, 0x00000005;
73CHECKREG r1, 0x00000010;
74CHECKREG r2, 0x00000014;
75CHECKREG r3, 0x00000183;
76CHECKREG r4, 0x0000002A;
77CHECKREG r5, 0xFFFFFF9A;
78CHECKREG r6, 0x00000114;
79CHECKREG r7, 0xFFFFFEEA;
80LSETUP ( start7 , end7 ) LC0 = FP;
81start7: R4 += 4;
82end7: R5 += -5;
83 R3 += 6;
84CHECKREG r0, 0x00000005;
85CHECKREG r1, 0x00000010;
86CHECKREG r2, 0x00000014;
87CHECKREG r3, 0x00000189;
88CHECKREG r4, 0x00000062;
89CHECKREG r5, 0xFFFFFF54;
90CHECKREG r6, 0x00000114;
91CHECKREG r7, 0xFFFFFEEA;
92
93P1 = 04;
94P2 = 08;
95P3 = 10;
96P4 = 12;
97P5 = 14;
98SP = 16;
99FP = 18;
100
101R0 = 0x05;
102R1 = 0x10;
103R2 = 0x12;
104R3 = 0x20;
105R4 = 0x18;
106R5 = 0x14;
107R6 = 0x16;
108R7 = 0x28;
109LSETUP ( start11 , end11 ) LC0 = P5;
110start11: R0 += 1;
111 R1 += -1;
112LSETUP ( start15 , end15 ) LC1 = P1;
113start15: R4 += 1;
114end15: R5 += -1;
115 R3 += 1;
116end11: R2 += 1;
117 R3 += 1;
118LSETUP ( start13 , end12 ) LC0 = P2;
119start13: R6 += 1;
120LSETUP ( start12 , end12 ) LC1 = P3;
121start12: R4 += 1;
122end12: R5 += -1;
123 R3 += 1;
124end13: R7 += -1;
125 R3 += 1;
126CHECKREG r0, 0x00000013;
127CHECKREG r1, 0x00000002;
128CHECKREG r2, 0x00000020;
129CHECKREG r3, 0x00000031;
130CHECKREG r4, 0x0000005A;
131CHECKREG r5, 0xFFFFFFD2;
132CHECKREG r6, 0x00000017;
133CHECKREG r7, 0x00000027;
134
135R0 = 0x05;
136R1 = 0x08;
137R2 = 0x12;
138R3 = 0x24;
139R4 = 0x18;
140R5 = 0x20;
141R6 = 0x32;
142R7 = 0x46 (X);
143LSETUP ( start14 , end14 ) LC0 = P4;
144start14: R0 += 1;
145 R1 += -1;
146LSETUP ( start16 , end16 ) LC1 = SP;
147start16: R6 += 1;
148end16: R7 += -1;
149 R3 += 1;
150LSETUP ( start17 , end14 ) LC1 = FP >> 1;
151start17: R4 += 1;
152end17: R5 += -1;
153 R3 += 1;
154end14: R2 += 1;
155 R3 += 1;
156CHECKREG r0, 0x00000011;
157CHECKREG r1, 0xFFFFFFFC;
158CHECKREG r2, 0x0000007E;
159CHECKREG r3, 0x0000009D;
160CHECKREG r4, 0x00000084;
161CHECKREG r5, 0xFFFFFFB4;
162CHECKREG r6, 0x000000F2;
163CHECKREG r7, 0xFFFFFF86;
164
165pass
166