Fixed shifts by varaibles. Added rotate test code to src/regression
[fw/sdcc] / src / regression / compare2.c
1 //#include "p16c84.h"
2
3 unsigned char success = 0;
4 unsigned char failures = 0;
5 unsigned char dummy = 0;
6
7 bit bit0 = 0;
8 unsigned int aint0 = 0;
9 unsigned int aint1 = 0;
10 unsigned char achar0 = 0;
11 unsigned char achar1 = 0;
12
13 void
14 done ()
15 {
16
17   dummy++;
18
19 }
20
21
22
23 void
24 char_lt_char (void)
25 {
26   if (achar0 < achar1)
27     failures++;
28 }
29
30 void
31 char_gt_char (void)
32 {
33   if (achar1 > achar0)
34     failures++;
35 }
36
37 void
38 char_lte_char (void)
39 {
40   if (achar0 <= achar1)
41     failures++;
42 }
43
44 void
45 char_gte_char (void)
46 {
47   if (achar1 >= achar0)
48     failures++;
49 }
50
51 void
52 char_lt_lit (void)
53 {
54   if (achar1 < 0x10)
55     failures++;
56 }
57
58 void
59 char_gt_lit (void)
60 {
61   if (achar1 > 0x10)
62     failures++;
63 }
64
65 void
66 char_lte_lit (void)
67 {
68   if (achar1 <= 0x0f)
69     failures++;
70 }
71
72 void
73 char_gte_lit (void)
74 {
75   if (achar1 >= 0x11)
76     failures++;
77 }
78
79
80 /* now repeat test using negative logic */
81 void
82 char_lt_char_else (void)
83 {
84   if (achar0 >= achar1)
85     dummy++;
86   else
87     failures++;
88 }
89
90 void
91 char_gt_char_else (void)
92 {
93   if (achar1 <= achar0)
94     dummy++;
95   else
96     failures++;
97 }
98
99 void
100 char_lte_char_else (void)
101 {
102   if (achar0 > achar1)
103     dummy++;
104   else
105     failures++;
106 }
107
108 void
109 char_gte_char_else (void)
110 {
111   if (achar1 < achar0)
112     dummy++;
113   else
114     failures++;
115 }
116
117 void
118 char_lt_lit_else (void)
119 {
120   if (achar1 >= 0x10)
121     dummy++;
122   else
123     failures++;
124 }
125
126 void
127 char_gt_lit_else (void)
128 {
129   if (achar1 <= 0x10)
130     dummy++;
131   else
132     failures++;
133 }
134
135 void
136 char_lte_lit_else (void)
137 {
138   if (achar1 > 0x0f)
139     dummy++;
140   else
141     failures++;
142 }
143
144 void
145 char_gte_lit_else (void)
146 {
147   if (achar1 < 0x11)
148     dummy++;
149   else
150     failures++;
151 }
152
153
154 /* ints */
155
156 void
157 int_lt_int (void)
158 {
159   if (aint0 < aint1)
160     failures++;
161 }
162
163 void
164 int_gt_int (void)
165 {
166   if (aint1 > aint0)
167     failures++;
168 }
169
170 void
171 int_lte_int (void)
172 {
173   if (aint0 <= aint1)
174     failures++;
175 }
176
177 void
178 int_gte_int (void)
179 {
180   if (aint1 >= aint0)
181     failures++;
182 }
183
184 void
185 int_lt_lit (void)
186 {
187   if (aint1 < 0x10)
188     failures++;
189 }
190
191 void
192 int_gt_lit (void)
193 {
194   if (aint1 > 0x10)
195     failures++;
196 }
197
198 void
199 int_lte_lit (void)
200 {
201   if (aint1 <= 0x0f)
202     failures++;
203 }
204
205 void
206 int_gte_lit (void)
207 {
208   if (aint1 >= 0x11)
209     failures++;
210 }
211
212
213
214
215 /* now repeat int comparisons using negative logic */
216
217 void
218 int_lt_int_else (void)
219 {
220   if (aint0 >= aint1)
221     dummy++;
222   else
223     failures++;
224 }
225
226 void
227 int_gt_int_else (void)
228 {
229   if (aint1 <= aint0)
230     dummy++;
231   else
232     failures++;
233 }
234
235 void
236 int_lte_int_else (void)
237 {
238   if (aint0 > aint1)
239     dummy++;
240   else
241     failures++;
242 }
243
244 void
245 int_gte_int_else (void)
246 {
247   if (aint1 < aint0)
248     dummy++;
249   else
250     failures++;
251 }
252
253 void
254 int_lt_lit_else (void)
255 {
256   if (aint1 >= 0x10)
257     dummy++;
258   else
259     failures++;
260 }
261
262 void
263 int_gt_lit_else (void)
264 {
265   if (aint1 <= 0x10)
266     dummy++;
267   else
268     failures++;
269 }
270
271 void
272 int_lte_lit_else (void)
273 {
274   if (aint1 > 0x0f)
275     dummy++;
276   else
277     failures++;
278 }
279
280 void
281 int_gte_lit_else (void)
282 {
283   if (aint1 < 0x11)
284     dummy++;
285   else
286     failures++;
287 }
288
289
290
291
292
293
294 void
295 main (void)
296 {
297
298   char_lt_char ();
299   char_gt_char ();
300
301   achar0++;
302   char_lt_char ();
303   char_gt_char ();
304   char_gte_char ();
305   char_lte_char ();
306
307   achar1 = 0x10;
308   char_lt_lit ();
309   char_gt_lit ();
310   char_lte_lit ();
311   char_gte_lit ();
312
313
314   achar0 = 0;
315   achar1 = 0;
316
317   char_lt_char_else ();
318   char_gt_char_else ();
319
320   achar0++;
321   char_lt_char_else ();
322   char_gt_char_else ();
323   char_gte_char_else ();
324   char_lte_char_else ();
325
326   achar1 = 0x10;
327   char_lt_lit_else ();
328   char_gt_lit_else ();
329   char_lte_lit_else ();
330   char_gte_lit_else ();
331
332
333
334   int_lt_int ();
335   int_gt_int ();
336
337   aint0++;
338   int_lt_int ();
339   int_gt_int ();
340   int_gte_int ();
341   int_lte_int ();
342
343   aint1 = 0x10;
344   int_lt_lit ();
345   int_gt_lit ();
346   int_lte_lit ();
347   int_gte_lit ();
348
349   aint0=0;
350   aint1=0;
351   int_lt_int_else ();
352   int_gt_int_else ();
353
354   aint0++;
355   int_lt_int_else ();
356   int_gt_int_else ();
357   int_gte_int_else ();
358   int_lte_int_else ();
359
360   aint1 = 0x10;
361   int_lt_lit_else ();
362   int_gt_lit_else ();
363   int_lte_lit_else ();
364   int_gte_lit_else ();
365
366   success = failures;
367   done ();
368 }