1//Original:/testcases/core/c_dagmodik_lnz_imgebl/c_dagmodik_lnz_imgebl.dsp
2// Spec Reference: dagmodik l not zero & i+m >= b+l
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9INIT_R_REGS 0;
10
11imm32 i0, 0x00001000;
12imm32 i1, 0x00001100;
13imm32 i2, 0x00001010;
14imm32 i3, 0x00001001;
15
16imm32 b0, 0x00001000;
17imm32 b1, 0x00001000;
18imm32 b2, 0x00001000;
19imm32 b3, 0x00001000;
20
21imm32 l0, 0x00000001;
22imm32 l1, 0x00000002;
23imm32 l2, 0x00000003;
24imm32 l3, 0x00000004;
25
26imm32 m0, 0x00000015;
27imm32 m1, 0x00000016;
28imm32 m2, 0x00000017;
29imm32 m3, 0x00000018;
30
31 I0 += 2;
32 I1 += 2;
33 I2 += 2;
34 I3 += 2;
35R0 = I0;
36R1 = I1;
37R2 = I2;
38R3 = I3;
39 I0 += 2;
40 I1 += 2;
41 I2 += 2;
42 I3 += 2;
43R4 = I0;
44R5 = I1;
45R6 = I2;
46R7 = I3;
47CHECKREG r0, 0x00001001;
48CHECKREG r1, 0x00001100;
49CHECKREG r2, 0x0000100F;
50CHECKREG r3, 0x00001003;
51CHECKREG r4, 0x00001002;
52CHECKREG r5, 0x00001100;
53CHECKREG r6, 0x0000100E;
54CHECKREG r7, 0x00001001;
55
56
57 I0 -= 2;
58 I1 -= 2;
59 I2 -= 2;
60 I3 -= 2;
61R0 = I0;
62R1 = I1;
63R2 = I2;
64R3 = I3;
65 I0 -= 2;
66 I1 -= 2;
67 I2 -= 2;
68 I3 -= 2;
69R4 = I0;
70R5 = I1;
71R6 = I2;
72R7 = I3;
73CHECKREG r0, 0x00001000;
74CHECKREG r1, 0x000010FE;
75CHECKREG r2, 0x0000100C;
76CHECKREG r3, 0x00001003;
77CHECKREG r4, 0x00000FFF;
78CHECKREG r5, 0x000010FC;
79CHECKREG r6, 0x0000100A;
80CHECKREG r7, 0x00001001;
81
82 I0 += 4;
83 I1 += 4;
84 I2 += 4;
85 I3 += 4;
86R0 = I0;
87R1 = I1;
88R2 = I2;
89R3 = I3;
90 I0 += 4;
91 I1 += 4;
92 I2 += 4;
93 I3 += 4;
94R4 = I0;
95R5 = I1;
96R6 = I2;
97R7 = I3;
98CHECKREG r0, 0x00001002;
99CHECKREG r1, 0x000010FE;
100CHECKREG r2, 0x0000100B;
101CHECKREG r3, 0x00001001;
102CHECKREG r4, 0x00001005;
103CHECKREG r5, 0x00001100;
104CHECKREG r6, 0x0000100C;
105CHECKREG r7, 0x00001001;
106
107 I0 -= 4;
108 I0 -= 4;
109 I1 -= 4;
110 I2 -= 4;
111 I3 -= 4;
112 I1 -= 4;
113 I2 -= 4;
114 I3 -= 4;
115R0 = I0;
116R1 = I1;
117R2 = I2;
118R3 = I3;
119CHECKREG r0, 0x00000FFE;
120CHECKREG r1, 0x000010F8;
121CHECKREG r2, 0x00001004;
122CHECKREG r3, 0x00001001;
123CHECKREG r4, 0x00001005;
124CHECKREG r5, 0x00001100;
125CHECKREG r6, 0x0000100C;
126CHECKREG r7, 0x00001001;
127
128 I0 -= 4;
129 I1 -= 4;
130 I2 -= 4;
131 I3 -= 4;
132 I0 -= 4;
133 I1 -= 4;
134 I2 -= 4;
135 I3 -= 4;
136R4 = I0;
137R5 = I1;
138R6 = I2;
139R7 = I3;
140CHECKREG r0, 0x00000FFE;
141CHECKREG r1, 0x000010F8;
142CHECKREG r2, 0x00001004;
143CHECKREG r3, 0x00001001;
144CHECKREG r4, 0x00000FF8;
145CHECKREG r5, 0x000010F0;
146CHECKREG r6, 0x00000FFF;
147CHECKREG r7, 0x00001001;
148
149// i+m = b+l
150imm32 i0, 0x00001000;
151imm32 i1, 0x00001100;
152imm32 i2, 0x00001010;
153imm32 i3, 0x00001001;
154
155imm32 b0, 0x00001000;
156imm32 b1, 0x00001100;
157imm32 b2, 0x00001010;
158imm32 b3, 0x00001001;
159
160imm32 l0, 0x00000015;
161imm32 l1, 0x00000016;
162imm32 l2, 0x00000017;
163imm32 l3, 0x00000018;
164
165imm32 m0, 0x00000015;
166imm32 m1, 0x00000016;
167imm32 m2, 0x00000017;
168imm32 m3, 0x00000018;
169
170 I0 += 2;
171 I1 += 2;
172 I2 += 2;
173 I3 += 2;
174R0 = I0;
175R1 = I1;
176R2 = I2;
177R3 = I3;
178 I0 += 2;
179 I1 += 2;
180 I2 += 2;
181 I3 += 2;
182R4 = I0;
183R5 = I1;
184R6 = I2;
185R7 = I3;
186CHECKREG r0, 0x00001002;
187CHECKREG r1, 0x00001102;
188CHECKREG r2, 0x00001012;
189CHECKREG r3, 0x00001003;
190CHECKREG r4, 0x00001004;
191CHECKREG r5, 0x00001104;
192CHECKREG r6, 0x00001014;
193CHECKREG r7, 0x00001005;
194
195
196 I0 -= 2;
197 I1 -= 2;
198 I2 -= 2;
199 I3 -= 2;
200R0 = I0;
201R1 = I1;
202R2 = I2;
203R3 = I3;
204 I0 -= 2;
205 I1 -= 2;
206 I2 -= 2;
207 I3 -= 2;
208R4 = I0;
209R5 = I1;
210R6 = I2;
211R7 = I3;
212CHECKREG r0, 0x00001002;
213CHECKREG r1, 0x00001102;
214CHECKREG r2, 0x00001012;
215CHECKREG r3, 0x00001003;
216CHECKREG r4, 0x00001000;
217CHECKREG r5, 0x00001100;
218CHECKREG r6, 0x00001010;
219CHECKREG r7, 0x00001001;
220
221 I0 += 4;
222 I1 += 4;
223 I2 += 4;
224 I3 += 4;
225R0 = I0;
226R1 = I1;
227R2 = I2;
228R3 = I3;
229 I0 += 4;
230 I1 += 4;
231 I2 += 4;
232 I3 += 4;
233R4 = I0;
234R5 = I1;
235R6 = I2;
236R7 = I3;
237CHECKREG r0, 0x00001004;
238CHECKREG r1, 0x00001104;
239CHECKREG r2, 0x00001014;
240CHECKREG r3, 0x00001005;
241CHECKREG r4, 0x00001008;
242CHECKREG r5, 0x00001108;
243CHECKREG r6, 0x00001018;
244CHECKREG r7, 0x00001009;
245
246 I0 -= 4;
247 I0 -= 4;
248 I1 -= 4;
249 I2 -= 4;
250 I3 -= 4;
251 I1 -= 4;
252 I2 -= 4;
253 I3 -= 4;
254R0 = I0;
255R1 = I1;
256R2 = I2;
257R3 = I3;
258CHECKREG r0, 0x00001000;
259CHECKREG r1, 0x00001100;
260CHECKREG r2, 0x00001010;
261CHECKREG r3, 0x00001001;
262CHECKREG r4, 0x00001008;
263CHECKREG r5, 0x00001108;
264CHECKREG r6, 0x00001018;
265CHECKREG r7, 0x00001009;
266
267 I0 -= 4;
268 I1 -= 4;
269 I2 -= 4;
270 I3 -= 4;
271 I0 -= 4;
272 I1 -= 4;
273 I2 -= 4;
274 I3 -= 4;
275R4 = I0;
276R5 = I1;
277R6 = I2;
278R7 = I3;
279CHECKREG r0, 0x00001000;
280CHECKREG r1, 0x00001100;
281CHECKREG r2, 0x00001010;
282CHECKREG r3, 0x00001001;
283CHECKREG r4, 0x0000100D;
284CHECKREG r5, 0x0000110E;
285CHECKREG r6, 0x0000101F;
286CHECKREG r7, 0x00001011;
287
288
289
290pass
291