OSDN Git Service

472298758f41e6da5648f81f03b99b6dc3234b99
[pf3gnuchains/pf3gnuchains4x.git] / sim / testsuite / sim / bfin / c_dsp32shift_lhh.s
1 //Original:/testcases/core/c_dsp32shift_lhh/c_dsp32shift_lhh.dsp
2 // Spec Reference: dsp32shift lshift/lshift
3 # mach: bfin
4
5 .include "testutils.inc"
6         start
7
8
9
10 // lshift/lshift : = (half reg)
11 // d_reg = lshift/lshift (d BY d_lo)
12 // Rx by RLx
13 imm32 r0, 0x01230000;
14 imm32 r1, 0x12345678;
15 imm32 r2, 0x23456789;
16 imm32 r3, 0x3456789a;
17 imm32 r4, 0x456789ab;
18 imm32 r5, 0x56789abc;
19 imm32 r6, 0x6789abcd;
20 imm32 r7, 0x789abcde;
21 R1 = LSHIFT R0 BY R0.L (V);
22 R2 = LSHIFT R1 BY R0.L (V);
23 R3 = LSHIFT R2 BY R0.L (V);
24 R4 = LSHIFT R3 BY R0.L (V);
25 R5 = LSHIFT R4 BY R0.L (V);
26 R6 = LSHIFT R5 BY R0.L (V);
27 R7 = LSHIFT R6 BY R0.L (V);
28 R0 = LSHIFT R7 BY R0.L (V);
29
30 imm32 r0, 0x01230002;
31 imm32 r1, 0x12345678;
32 imm32 r2, 0x23456789;
33 imm32 r3, 0x3456789a;
34 imm32 r4, 0x456789ab;
35 imm32 r5, 0x56789abc;
36 imm32 r6, 0x6789abcd;
37 imm32 r7, 0x789abcde;
38 R1.L = 5;
39 R2 = LSHIFT R0 BY R1.L (V);
40 R3 = LSHIFT R1 BY R1.L (V);
41 R4 = LSHIFT R2 BY R1.L (V);
42 R5 = LSHIFT R3 BY R1.L (V);
43 R6 = LSHIFT R4 BY R1.L (V);
44 R7 = LSHIFT R5 BY R1.L (V);
45 R0 = LSHIFT R6 BY R1.L (V);
46 R1 = LSHIFT R7 BY R1.L (V);
47
48 imm32 r0, 0x01230002;
49 imm32 r1, 0x12345678;
50 imm32 r2, 0x23456789;
51 imm32 r3, 0x3456789a;
52 imm32 r4, 0x456789ab;
53 imm32 r5, 0x56789abc;
54 imm32 r6, 0x6789abcd;
55 imm32 r7, 0x789abcde;
56 R2 = 15;
57 R3 = LSHIFT R0 BY R2.L (V);
58 R4 = LSHIFT R1 BY R2.L (V);
59 R5 = LSHIFT R2 BY R2.L (V);
60 R6 = LSHIFT R3 BY R2.L (V);
61 R7 = LSHIFT R4 BY R2.L (V);
62 R0 = LSHIFT R5 BY R2.L (V);
63 R1 = LSHIFT R6 BY R2.L (V);
64 R2 = LSHIFT R7 BY R2.L (V);
65
66 imm32 r0, 0x01230002;
67 imm32 r1, 0x12345678;
68 imm32 r2, 0x23456789;
69 imm32 r3, 0x3456789a;
70 imm32 r4, 0x456789ab;
71 imm32 r5, 0x56789abc;
72 imm32 r6, 0x6789abcd;
73 imm32 r7, 0x789abcde;
74 R3.L = 16;
75 R4 = LSHIFT R0 BY R3.L (V);
76 R5 = LSHIFT R1 BY R3.L (V);
77 R6 = LSHIFT R2 BY R3.L (V);
78 R7 = LSHIFT R3 BY R3.L (V);
79 R0 = LSHIFT R4 BY R3.L (V);
80 R1 = LSHIFT R5 BY R3.L (V);
81 R2 = LSHIFT R6 BY R3.L (V);
82 R3 = LSHIFT R7 BY R3.L (V);
83
84 imm32 r0, 0x01230002;
85 imm32 r1, 0x12345678;
86 imm32 r2, 0x23456789;
87 imm32 r3, 0x3456789a;
88 imm32 r4, 0x456789ab;
89 imm32 r5, 0x56789abc;
90 imm32 r6, 0x6789abcd;
91 imm32 r7, 0x789abcde;
92 R4.L = -1;
93 R0 = LSHIFT R0 BY R4.L (V);
94 R1 = LSHIFT R1 BY R4.L (V);
95 R2 = LSHIFT R2 BY R4.L (V);
96 R3 = LSHIFT R3 BY R4.L (V);
97 R4 = LSHIFT R4 BY R4.L (V);
98 R5 = LSHIFT R5 BY R4.L (V);
99 R6 = LSHIFT R6 BY R4.L (V);
100 R7 = LSHIFT R7 BY R4.L (V);
101
102 imm32 r0, 0x01230002;
103 imm32 r1, 0x12345678;
104 imm32 r2, 0x23456789;
105 imm32 r3, 0x3456789a;
106 imm32 r4, 0x456789ab;
107 imm32 r5, 0x56789abc;
108 imm32 r6, 0x6789abcd;
109 imm32 r7, 0x789abcde;
110 R5.L = -6;
111 R6 = LSHIFT R0 BY R5.L (V);
112 R7 = LSHIFT R1 BY R5.L (V);
113 R0 = LSHIFT R2 BY R5.L (V);
114 R1 = LSHIFT R3 BY R5.L (V);
115 R2 = LSHIFT R4 BY R5.L (V);
116 R3 = LSHIFT R5 BY R5.L (V);
117 R4 = LSHIFT R6 BY R5.L (V);
118 R5 = LSHIFT R7 BY R5.L (V);
119
120 imm32 r0, 0x01230002;
121 imm32 r1, 0x12345678;
122 imm32 r2, 0x23456789;
123 imm32 r3, 0x3456789a;
124 imm32 r4, 0x456789ab;
125 imm32 r5, 0x56789abc;
126 imm32 r6, 0x6789abcd;
127 imm32 r7, 0x789abcde;
128 R6.L = -15;
129 R7 = LSHIFT R0 BY R6.L (V);
130 R0 = LSHIFT R1 BY R6.L (V);
131 R1 = LSHIFT R2 BY R6.L (V);
132 R2 = LSHIFT R3 BY R6.L (V);
133 R3 = LSHIFT R4 BY R6.L (V);
134 R4 = LSHIFT R5 BY R6.L (V);
135 R5 = LSHIFT R6 BY R6.L (V);
136 R6 = LSHIFT R7 BY R6.L (V);
137
138 imm32 r0, 0x01230002;
139 imm32 r1, 0x12345678;
140 imm32 r2, 0x23456789;
141 imm32 r3, 0x3456789a;
142 imm32 r4, 0x456789ab;
143 imm32 r5, 0x56789abc;
144 imm32 r6, 0x6789abcd;
145 imm32 r7, 0x789abcde;
146 R7.L = -16;
147 R0 = LSHIFT R0 BY R7.L (V);
148 R1 = LSHIFT R1 BY R7.L (V);
149 R2 = LSHIFT R2 BY R7.L (V);
150 R3 = LSHIFT R3 BY R7.L (V);
151 R4 = LSHIFT R4 BY R7.L (V);
152 R5 = LSHIFT R5 BY R7.L (V);
153 R6 = LSHIFT R6 BY R7.L (V);
154 R7 = LSHIFT R7 BY R7.L (V);
155
156 imm32 r0, 0x01230002;
157 imm32 r1, 0x12345678;
158 imm32 r2, 0x23456789;
159 imm32 r3, 0x3456789a;
160 imm32 r4, 0x456789ab;
161 imm32 r5, 0x56789abc;
162 imm32 r6, 0x6789abcd;
163 imm32 r7, 0x789abcde;
164 R0.L = 4;
165 //r0 = lshift/lshift (r0 by rl0);
166 R1 = LSHIFT R1 BY R0.L (V);
167 R2 = LSHIFT R2 BY R0.L (V);
168 R3 = LSHIFT R3 BY R0.L (V);
169 R4 = LSHIFT R4 BY R0.L (V);
170 R5 = LSHIFT R5 BY R0.L (V);
171 R6 = LSHIFT R6 BY R0.L (V);
172 R7 = LSHIFT R7 BY R0.L (V);
173
174 imm32 r0, 0x01230002;
175 imm32 r1, 0x12345678;
176 imm32 r2, 0x23456789;
177 imm32 r3, 0x3456789a;
178 imm32 r4, 0x456789ab;
179 imm32 r5, 0x56789abc;
180 imm32 r6, 0x6789abcd;
181 imm32 r7, 0x789abcde;
182 R1.L = 6;
183 R0 = LSHIFT R0 BY R1.L (V);
184 //r1 = lshift/lshift (r1 by rl1);
185 R2 = LSHIFT R2 BY R1.L (V);
186 R3 = LSHIFT R3 BY R1.L (V);
187 R4 = LSHIFT R4 BY R1.L (V);
188 R5 = LSHIFT R5 BY R1.L (V);
189 R6 = LSHIFT R6 BY R1.L (V);
190 R7 = LSHIFT R7 BY R1.L (V);
191
192
193 imm32 r0, 0x01230002;
194 imm32 r1, 0x12345678;
195 imm32 r2, 0x23456789;
196 imm32 r3, 0x3456789a;
197 imm32 r4, 0x456789ab;
198 imm32 r5, 0x56789abc;
199 imm32 r6, 0x6789abcd;
200 imm32 r7, 0x789abcde;
201 R2.L = 15;
202 R0 = LSHIFT R0 BY R2.L (V);
203 R1 = LSHIFT R1 BY R2.L (V);
204 //r2 = lshift/lshift (r2 by rl2);
205 R3 = LSHIFT R3 BY R2.L (V);
206 R4 = LSHIFT R4 BY R2.L (V);
207 R5 = LSHIFT R5 BY R2.L (V);
208 R6 = LSHIFT R6 BY R2.L (V);
209 R7 = LSHIFT R7 BY R2.L (V);
210
211 imm32 r0, 0x01230002;
212 imm32 r1, 0x12345678;
213 imm32 r2, 0x23456789;
214 imm32 r3, 0x3456789a;
215 imm32 r4, 0x456789ab;
216 imm32 r5, 0x56789abc;
217 imm32 r6, 0x6789abcd;
218 imm32 r7, 0x789abcde;
219 R3.L = 16;
220 R0 = LSHIFT R0 BY R3.L (V);
221 R1 = LSHIFT R1 BY R3.L (V);
222 R2 = LSHIFT R2 BY R3.L (V);
223 //r3 = lshift/lshift (r3 by rl3);
224 R4 = LSHIFT R4 BY R3.L (V);
225 R5 = LSHIFT R5 BY R3.L (V);
226 R6 = LSHIFT R6 BY R3.L (V);
227 R7 = LSHIFT R7 BY R3.L (V);
228
229 imm32 r0, 0x01230002;
230 imm32 r1, 0x12345678;
231 imm32 r2, 0x23456789;
232 imm32 r3, 0x3456789a;
233 imm32 r4, 0x456789ab;
234 imm32 r5, 0x56789abc;
235 imm32 r6, 0x6789abcd;
236 imm32 r7, 0x789abcde;
237 R4.L = -9;
238 R0 = LSHIFT R0 BY R4.L (V);
239 R1 = LSHIFT R1 BY R4.L (V);
240 R2 = LSHIFT R2 BY R4.L (V);
241 R3 = LSHIFT R3 BY R4.L (V);
242 //r4 = lshift/lshift (r4 by rl4);
243 R5 = LSHIFT R5 BY R4.L (V);
244 R6 = LSHIFT R6 BY R4.L (V);
245 R7 = LSHIFT R7 BY R4.L (V);
246
247 imm32 r0, 0x01230002;
248 imm32 r1, 0x12345678;
249 imm32 r2, 0x23456789;
250 imm32 r3, 0x3456789a;
251 imm32 r4, 0x456789ab;
252 imm32 r5, 0x56789abc;
253 imm32 r6, 0x6789abcd;
254 imm32 r7, 0x789abcde;
255 R5.L = -14;
256 R0 = LSHIFT R0 BY R5.L (V);
257 R1 = LSHIFT R1 BY R5.L (V);
258 R2 = LSHIFT R2 BY R5.L (V);
259 R3 = LSHIFT R3 BY R5.L (V);
260 R4 = LSHIFT R4 BY R5.L (V);
261 //r5 = lshift/lshift (r5 by rl5);
262 R6 = LSHIFT R6 BY R5.L (V);
263 R7 = LSHIFT R7 BY R5.L (V);
264
265
266 imm32 r0, 0x01230002;
267 imm32 r1, 0x12345678;
268 imm32 r2, 0x23456789;
269 imm32 r3, 0x3456789a;
270 imm32 r4, 0x456789ab;
271 imm32 r5, 0x56789abc;
272 imm32 r6, 0x6789abcd;
273 imm32 r7, 0x789abcde;
274 R6.L = -15;
275 R0 = LSHIFT R0 BY R6.L (V);
276 R1 = LSHIFT R1 BY R6.L (V);
277 R2 = LSHIFT R2 BY R6.L (V);
278 R3 = LSHIFT R3 BY R6.L (V);
279 R4 = LSHIFT R4 BY R6.L (V);
280 R5 = LSHIFT R5 BY R6.L (V);
281 //r6 = lshift/lshift (r6 by rl6);
282 R7 = LSHIFT R7 BY R6.L (V);
283
284 imm32 r0, 0x01230002;
285 imm32 r1, 0x12345678;
286 imm32 r2, 0x23456789;
287 imm32 r3, 0x3456789a;
288 imm32 r4, 0x456789ab;
289 imm32 r5, 0x56789abc;
290 imm32 r6, 0x6789abcd;
291 imm32 r7, 0x789abcde;
292 R7.L = -16;
293 R0 = LSHIFT R0 BY R7.L (V);
294 R1 = LSHIFT R1 BY R7.L (V);
295 R2 = LSHIFT R2 BY R7.L (V);
296 R3 = LSHIFT R3 BY R7.L (V);
297 R4 = LSHIFT R4 BY R7.L (V);
298 R5 = LSHIFT R5 BY R7.L (V);
299 R6 = LSHIFT R6 BY R7.L (V);
300 R7 = LSHIFT R7 BY R7.L (V);
301 CHECKREG r0, 0x00000000;
302 CHECKREG r1, 0x00000000;
303 CHECKREG r2, 0x00000000;
304 CHECKREG r3, 0x00000000;
305 CHECKREG r4, 0x00000000;
306 CHECKREG r5, 0x00000000;
307 CHECKREG r6, 0x00000000;
308 CHECKREG r7, 0x00000000;
309 CHECKREG r7, 0x00000000;
310
311 pass