1//Original:/testcases/core/c_dspldst_ld_drlo_ipp/c_dspldst_ld_drlo_ipp.dsp
2// Spec Reference: c_dspldst ld_drlo_i++/--
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8	INIT_R_REGS 0;
9
10	loadsym i0, DATA_ADDR_3;
11	loadsym i1, DATA_ADDR_4;
12	loadsym i2, DATA_ADDR_5;
13	loadsym i3, DATA_ADDR_6;
14
15// Load Lower half of Dregs
16	R0.L = W [ I0 ++ ];
17	R1.L = W [ I1 ++ ];
18	R2.L = W [ I2 ++ ];
19	R3.L = W [ I3 ++ ];
20	R4.L = W [ I0 ++ ];
21	R5.L = W [ I1 ++ ];
22	R6.L = W [ I2 ++ ];
23	R7.L = W [ I3 ++ ];
24	CHECKREG r0, 0x00000203;
25	CHECKREG r1, 0x00002223;
26	CHECKREG r2, 0x00004243;
27	CHECKREG r3, 0x00006263;
28	CHECKREG r4, 0x00000001;
29	CHECKREG r5, 0x00002021;
30	CHECKREG r6, 0x00004041;
31	CHECKREG r7, 0x00006061;
32
33	R1.L = W [ I0 ++ ];
34	R2.L = W [ I1 ++ ];
35	R3.L = W [ I2 ++ ];
36	R4.L = W [ I3 ++ ];
37	R5.L = W [ I0 ++ ];
38	R6.L = W [ I1 ++ ];
39	R7.L = W [ I2 ++ ];
40	R0.L = W [ I3 ++ ];
41	CHECKREG r0, 0x00006465;
42	CHECKREG r1, 0x00000607;
43	CHECKREG r2, 0x00002627;
44	CHECKREG r3, 0x00004647;
45	CHECKREG r4, 0x00006667;
46	CHECKREG r5, 0x00000405;
47	CHECKREG r6, 0x00002425;
48	CHECKREG r7, 0x00004445;
49
50	R2.L = W [ I0 ++ ];
51	R3.L = W [ I1 ++ ];
52	R4.L = W [ I2 ++ ];
53	R5.L = W [ I3 ++ ];
54	R6.L = W [ I0 ++ ];
55	R7.L = W [ I1 ++ ];
56	R0.L = W [ I2 ++ ];
57	R1.L = W [ I3 ++ ];
58	CHECKREG r0, 0x00004849;
59	CHECKREG r1, 0x00006869;
60	CHECKREG r2, 0x00000A0B;
61	CHECKREG r3, 0x00002A2B;
62	CHECKREG r4, 0x00004A4B;
63	CHECKREG r5, 0x00006A6B;
64	CHECKREG r6, 0x00000809;
65	CHECKREG r7, 0x00002829;
66
67	R3.L = W [ I0 ++ ];
68	R4.L = W [ I1 ++ ];
69	R5.L = W [ I2 ++ ];
70	R6.L = W [ I3 ++ ];
71	R7.L = W [ I0 ++ ];
72	R0.L = W [ I1 ++ ];
73	R1.L = W [ I2 ++ ];
74	R2.L = W [ I3 ++ ];
75	CHECKREG r0, 0x00002C2D;
76	CHECKREG r1, 0x00004C4D;
77	CHECKREG r2, 0x00006C6D;
78	CHECKREG r3, 0x00000E0F;
79	CHECKREG r4, 0x00002E2F;
80	CHECKREG r5, 0x00004E4F;
81	CHECKREG r6, 0x00006E6F;
82	CHECKREG r7, 0x00000C0D;
83
84// reverse to minus mninus i--
85
86// Load Lower half of Dregs
87	R0.L = W [ I0 -- ];
88	R1.L = W [ I1 -- ];
89	R2.L = W [ I2 -- ];
90	R3.L = W [ I3 -- ];
91	R4.L = W [ I0 -- ];
92	R5.L = W [ I1 -- ];
93	R6.L = W [ I2 -- ];
94	R7.L = W [ I3 -- ];
95	CHECKREG r0, 0x00001213;
96	CHECKREG r1, 0x00003233;
97	CHECKREG r2, 0x00005253;
98	CHECKREG r3, 0x00007273;
99	CHECKREG r4, 0x00000C0D;
100	CHECKREG r5, 0x00002C2D;
101	CHECKREG r6, 0x00004C4D;
102	CHECKREG r7, 0x00006C6D;
103
104	R1.L = W [ I0 -- ];
105	R2.L = W [ I1 -- ];
106	R3.L = W [ I2 -- ];
107	R4.L = W [ I3 -- ];
108	R5.L = W [ I0 -- ];
109	R6.L = W [ I1 -- ];
110	R7.L = W [ I2 -- ];
111	R0.L = W [ I3 -- ];
112	CHECKREG r0, 0x00006869;
113	CHECKREG r1, 0x00000E0F;
114	CHECKREG r2, 0x00002E2F;
115	CHECKREG r3, 0x00004E4F;
116	CHECKREG r4, 0x00006E6F;
117	CHECKREG r5, 0x00000809;
118	CHECKREG r6, 0x00002829;
119	CHECKREG r7, 0x00004849;
120
121	R2.L = W [ I0 -- ];
122	R3.L = W [ I1 -- ];
123	R4.L = W [ I2 -- ];
124	R5.L = W [ I3 -- ];
125	R6.L = W [ I0 -- ];
126	R7.L = W [ I1 -- ];
127	R0.L = W [ I2 -- ];
128	R1.L = W [ I3 -- ];
129	CHECKREG r0, 0x00004445;
130	CHECKREG r1, 0x00006465;
131	CHECKREG r2, 0x00000A0B;
132	CHECKREG r3, 0x00002A2B;
133	CHECKREG r4, 0x00004A4B;
134	CHECKREG r5, 0x00006A6B;
135	CHECKREG r6, 0x00000405;
136	CHECKREG r7, 0x00002425;
137
138	R3.L = W [ I0 -- ];
139	R4.L = W [ I1 -- ];
140	R5.L = W [ I2 -- ];
141	R6.L = W [ I3 -- ];
142	R7.L = W [ I0 -- ];
143	R0.L = W [ I1 -- ];
144	R1.L = W [ I2 -- ];
145	R2.L = W [ I3 -- ];
146	CHECKREG r0, 0x00002021;
147	CHECKREG r1, 0x00004041;
148	CHECKREG r2, 0x00006061;
149	CHECKREG r3, 0x00000607;
150	CHECKREG r4, 0x00002627;
151	CHECKREG r5, 0x00004647;
152	CHECKREG r6, 0x00006667;
153	CHECKREG r7, 0x00000001;
154
155	pass
156
157// Pre-load memory with known data
158// More data is defined than will actually be used
159
160	.data
161DATA_ADDR_3:
162	.dd 0x00010203
163	.dd 0x04050607
164	.dd 0x08090A0B
165	.dd 0x0C0D0E0F
166	.dd 0x10111213
167	.dd 0x14151617
168	.dd 0x18191A1B
169	.dd 0x1C1D1E1F
170	.dd 0x11223344
171	.dd 0x55667788
172	.dd 0x99717273
173	.dd 0x74757677
174	.dd 0x82838485
175	.dd 0x86878889
176	.dd 0x80818283
177	.dd 0x84858687
178	.dd 0x01020304
179	.dd 0x05060708
180	.dd 0x09101112
181	.dd 0x14151617
182	.dd 0x18192021
183	.dd 0x22232425
184	.dd 0x26272829
185	.dd 0x30313233
186	.dd 0x34353637
187	.dd 0x38394041
188	.dd 0x42434445
189	.dd 0x46474849
190	.dd 0x50515253
191	.dd 0x54555657
192	.dd 0x58596061
193	.dd 0x62636465
194	.dd 0x66676869
195
196DATA_ADDR_4:
197	.dd 0x20212223
198	.dd 0x24252627
199	.dd 0x28292A2B
200	.dd 0x2C2D2E2F
201	.dd 0x30313233
202	.dd 0x34353637
203	.dd 0x38393A3B
204	.dd 0x3C3D3E3F
205	.dd 0x91929394
206	.dd 0x95969798
207	.dd 0x99A1A2A3
208	.dd 0xA5A6A7A8
209	.dd 0xA9B0B1B2
210	.dd 0xB3B4B5B6
211	.dd 0xB7B8B9C0
212	.dd 0x70717273
213	.dd 0x74757677
214	.dd 0x78798081
215	.dd 0x82838485
216	.dd 0x86C283C4
217	.dd 0x81C283C4
218	.dd 0x82C283C4
219	.dd 0x83C283C4
220	.dd 0x84C283C4
221	.dd 0x85C283C4
222	.dd 0x86C283C4
223	.dd 0x87C288C4
224	.dd 0x88C283C4
225	.dd 0x89C283C4
226	.dd 0x80C283C4
227	.dd 0x81C283C4
228	.dd 0x82C288C4
229
230DATA_ADDR_5:
231	.dd 0x40414243
232	.dd 0x44454647
233	.dd 0x48494A4B
234	.dd 0x4C4D4E4F
235	.dd 0x50515253
236	.dd 0x54555657
237	.dd 0x58595A5B
238	.dd 0xC5C6C7C8
239	.dd 0xC9CACBCD
240	.dd 0xCFD0D1D2
241	.dd 0xD3D4D5D6
242	.dd 0xD7D8D9DA
243	.dd 0xDBDCDDDE
244	.dd 0xDFE0E1E2
245	.dd 0xE3E4E5E6
246	.dd 0x91E899EA
247	.dd 0x92E899EA
248	.dd 0x93E899EA
249	.dd 0x94E899EA
250	.dd 0x95E899EA
251	.dd 0x96E899EA
252	.dd 0x97E899EA
253	.dd 0x98E899EA
254	.dd 0x99E899EA
255	.dd 0x91E899EA
256	.dd 0x92E899EA
257	.dd 0x93E899EA
258	.dd 0x94E899EA
259	.dd 0x95E899EA
260	.dd 0x96E899EA
261	.dd 0x977899EA
262
263DATA_ADDR_6:
264	.dd 0x60616263
265	.dd 0x64656667
266	.dd 0x68696A6B
267	.dd 0x6C6D6E6F
268	.dd 0x70717273
269	.dd 0x74757677
270	.dd 0x78797A7B
271	.dd 0x7C7D7E7F
272	.dd 0xEBECEDEE
273	.dd 0xF3F4F5F6
274	.dd 0xF7F8F9FA
275	.dd 0xFBFCFDFE
276	.dd 0xFF000102
277	.dd 0x03040506
278	.dd 0x0708090A
279	.dd 0x0B0CAD0E
280	.dd 0xAB0CAD01
281	.dd 0xAB0CAD02
282	.dd 0xAB0CAD03
283	.dd 0xAB0CAD04
284	.dd 0xAB0CAD05
285	.dd 0xAB0CAD06
286	.dd 0xAB0CAA07
287	.dd 0xAB0CAD08
288	.dd 0xAB0CAD09
289	.dd 0xAB0CAD0E
290	.dd 0xAB0CAD0E
291	.dd 0xAB0CAD0E
292	.dd 0xAB0CAD0E
293	.dd 0xAB0CAD0E
294	.dd 0xAB0CAD0E
295	.dd 0xAB0CAD0E
296
297DATA_ADDR_7:
298	.dd 0x80818283
299	.dd 0x84858687
300	.dd 0x88898A8B
301	.dd 0x8C8D8E8F
302	.dd 0x90919293
303	.dd 0x94959697
304	.dd 0x98999A9B
305	.dd 0x9C9D9E9F
306	.dd 0x0F101213
307	.dd 0x14151617
308	.dd 0x18191A1B
309	.dd 0x1C1D1E1F
310	.dd 0x20212223
311	.dd 0x24252627
312	.dd 0x28292A2B
313	.dd 0x2C2D2E2F
314	.dd 0xBC0DBE21
315	.dd 0xBC1DBE22
316	.dd 0xBC2DBE23
317	.dd 0xBC3DBE24
318	.dd 0xBC4DBE65
319	.dd 0xBC5DBE27
320	.dd 0xBC6DBE28
321	.dd 0xBC7DBE29
322	.dd 0xBC8DBE2F
323	.dd 0xBC9DBE20
324	.dd 0xBCADBE21
325	.dd 0xBCBDBE2F
326	.dd 0xBCCDBE23
327	.dd 0xBCDDBE24
328	.dd 0xBCFDBE25
329	.dd 0xBC0DBE26
330
331DATA_ADDR_8:
332	.dd 0xA0A1A2A3
333	.dd 0xA4A5A6A7
334	.dd 0xA8A9AAAB
335	.dd 0xACADAEAF
336	.dd 0xB0B1B2B3
337	.dd 0xB4B5B6B7
338	.dd 0xB8B9BABB
339	.dd 0xBCBDBEBF
340	.dd 0xC0C1C2C3
341	.dd 0xC4C5C6C7
342	.dd 0xC8C9CACB
343	.dd 0xCCCDCECF
344	.dd 0xD0D1D2D3
345	.dd 0xD4D5D6D7
346	.dd 0xD8D9DADB
347	.dd 0xDCDDDEDF
348	.dd 0xE0E1E2E3
349	.dd 0xE4E5E6E7
350	.dd 0xE8E9EAEB
351	.dd 0xECEDEEEF
352	.dd 0xF0F1F2F3
353	.dd 0xF4F5F6F7
354	.dd 0xF8F9FAFB
355	.dd 0xFCFDFEFF
356