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