1 /* Check rotate pattern detection. */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-optimized" } */
4 /* Rotates should be recognized only in functions with | instead of + or ^,
5 or in functions that have constant shift counts (unused attribute on y). */
6 /* { dg-final { scan-tree-dump-times "r\[<>]\[<>]" 48 "optimized" } } */
7 /* { dg-final { cleanup-tree-dump "optimized" } } */
8
9 unsigned int
f1(unsigned int x,unsigned int y)10 f1 (unsigned int x, unsigned int y)
11 {
12 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
13 }
14
15 unsigned int
f2(unsigned int x,unsigned long int y)16 f2 (unsigned int x, unsigned long int y)
17 {
18 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
19 }
20
21 unsigned int
f3(unsigned int x,int y)22 f3 (unsigned int x, int y __attribute__((unused)))
23 {
24 return (x << 1) | (x >> ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
25 }
26
27 unsigned int
f4(unsigned int x,int y)28 f4 (unsigned int x, int y __attribute__((unused)))
29 {
30 return (x << ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (x >> 1);
31 }
32
33 unsigned short int
f5(unsigned short int x,unsigned int y)34 f5 (unsigned short int x, unsigned int y)
35 {
36 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1)));
37 }
38
39 unsigned short int
f6(unsigned short int x,unsigned long int y)40 f6 (unsigned short int x, unsigned long int y)
41 {
42 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1)));
43 }
44
45 unsigned char
f7(unsigned char x,unsigned int y)46 f7 (unsigned char x, unsigned int y)
47 {
48 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ - 1)));
49 }
50
51 unsigned char
f8(unsigned char x,unsigned long int y)52 f8 (unsigned char x, unsigned long int y)
53 {
54 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ - 1)));
55 }
56
57 unsigned int
f9(unsigned int x,unsigned int y)58 f9 (unsigned int x, unsigned int y)
59 {
60 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
61 }
62
63 unsigned int
f10(unsigned int x,unsigned long int y)64 f10 (unsigned int x, unsigned long int y)
65 {
66 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
67 }
68
69 unsigned int
f11(unsigned int x,int y)70 f11 (unsigned int x, int y __attribute__((unused)))
71 {
72 return (x << 1) | (x >> ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
73 }
74
75 unsigned int
f12(unsigned int x,int y)76 f12 (unsigned int x, int y __attribute__((unused)))
77 {
78 return (x << ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) | (x >> 1);
79 }
80
81 unsigned short int
f13(unsigned short int x,unsigned int y)82 f13 (unsigned short int x, unsigned int y)
83 {
84 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1)));
85 }
86
87 unsigned short int
f14(unsigned short int x,unsigned long int y)88 f14 (unsigned short int x, unsigned long int y)
89 {
90 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1)));
91 }
92
93 unsigned char
f15(unsigned char x,unsigned int y)94 f15 (unsigned char x, unsigned int y)
95 {
96 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1)));
97 }
98
99 unsigned char
f16(unsigned char x,unsigned long int y)100 f16 (unsigned char x, unsigned long int y)
101 {
102 return (x << y) | (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1)));
103 }
104
105 unsigned int
f17(unsigned int x,unsigned int y)106 f17 (unsigned int x, unsigned int y)
107 {
108 return (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) ^ (x << y);
109 }
110
111 unsigned int
f18(unsigned int x,unsigned long int y)112 f18 (unsigned int x, unsigned long int y)
113 {
114 return (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) ^ (x << y);
115 }
116
117 unsigned int
f19(unsigned int x,int y)118 f19 (unsigned int x, int y __attribute__((unused)))
119 {
120 return (x >> ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) ^ (x << 1);
121 }
122
123 unsigned int
f20(unsigned int x,int y)124 f20 (unsigned int x, int y __attribute__((unused)))
125 {
126 return (x >> 1) ^ (x << ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
127 }
128
129 unsigned short int
f21(unsigned short int x,unsigned int y)130 f21 (unsigned short int x, unsigned int y)
131 {
132 return (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1))) ^ (x << y);
133 }
134
135 unsigned short int
f22(unsigned short int x,unsigned long int y)136 f22 (unsigned short int x, unsigned long int y)
137 {
138 return (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1))) ^ (x << y);
139 }
140
141 unsigned char
f23(unsigned char x,unsigned int y)142 f23 (unsigned char x, unsigned int y)
143 {
144 return (x >> ((-y) & (__CHAR_BIT__ - 1))) ^ (x << y);
145 }
146
147 unsigned char
f24(unsigned char x,unsigned long int y)148 f24 (unsigned char x, unsigned long int y)
149 {
150 return (x >> ((-y) & (__CHAR_BIT__ - 1))) ^ (x << y);
151 }
152
153 unsigned int
f25(unsigned int x,unsigned int y)154 f25 (unsigned int x, unsigned int y)
155 {
156 return (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) ^ (x << y);
157 }
158
159 unsigned int
f26(unsigned int x,unsigned long int y)160 f26 (unsigned int x, unsigned long int y)
161 {
162 return (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) ^ (x << y);
163 }
164
165 unsigned int
f27(unsigned int x,int y)166 f27 (unsigned int x, int y __attribute__((unused)))
167 {
168 return (x >> ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) ^ (x << 1);
169 }
170
171 unsigned int
f28(unsigned int x,int y)172 f28 (unsigned int x, int y __attribute__((unused)))
173 {
174 return (x >> 1) ^ (x << ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
175 }
176
177 unsigned short int
f29(unsigned short int x,unsigned int y)178 f29 (unsigned short int x, unsigned int y)
179 {
180 return (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1))) ^ (x << y);
181 }
182
183 unsigned short int
f30(unsigned short int x,unsigned long int y)184 f30 (unsigned short int x, unsigned long int y)
185 {
186 return (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1))) ^ (x << y);
187 }
188
189 unsigned char
f31(unsigned char x,unsigned int y)190 f31 (unsigned char x, unsigned int y)
191 {
192 return (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1))) ^ (x << y);
193 }
194
195 unsigned char
f32(unsigned char x,unsigned long int y)196 f32 (unsigned char x, unsigned long int y)
197 {
198 return (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1))) ^ (x << y);
199 }
200
201 unsigned int
f33(unsigned int x,unsigned int y)202 f33 (unsigned int x, unsigned int y)
203 {
204 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
205 }
206
207 unsigned int
f34(unsigned int x,unsigned long int y)208 f34 (unsigned int x, unsigned long int y)
209 {
210 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
211 }
212
213 unsigned int
f35(unsigned int x,int y)214 f35 (unsigned int x, int y __attribute__((unused)))
215 {
216 return (x >> 1) | (x << ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
217 }
218
219 unsigned int
f36(unsigned int x,int y)220 f36 (unsigned int x, int y __attribute__((unused)))
221 {
222 return (x >> ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (x << 1);
223 }
224
225 unsigned short int
f37(unsigned short int x,unsigned int y)226 f37 (unsigned short int x, unsigned int y)
227 {
228 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1)));
229 }
230
231 unsigned short int
f38(unsigned short int x,unsigned long int y)232 f38 (unsigned short int x, unsigned long int y)
233 {
234 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1)));
235 }
236
237 unsigned char
f39(unsigned char x,unsigned int y)238 f39 (unsigned char x, unsigned int y)
239 {
240 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ - 1)));
241 }
242
243 unsigned char
f40(unsigned char x,unsigned long int y)244 f40 (unsigned char x, unsigned long int y)
245 {
246 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ - 1)));
247 }
248
249 unsigned int
f41(unsigned int x,unsigned int y)250 f41 (unsigned int x, unsigned int y)
251 {
252 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
253 }
254
255 unsigned int
f42(unsigned int x,unsigned long int y)256 f42 (unsigned int x, unsigned long int y)
257 {
258 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
259 }
260
261 unsigned int
f43(unsigned int x,int y)262 f43 (unsigned int x, int y __attribute__((unused)))
263 {
264 return (x >> 1) | (x << ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
265 }
266
267 unsigned int
f44(unsigned int x,int y)268 f44 (unsigned int x, int y __attribute__((unused)))
269 {
270 return (x >> ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) | (x << 1);
271 }
272
273 unsigned short int
f45(unsigned short int x,unsigned int y)274 f45 (unsigned short int x, unsigned int y)
275 {
276 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1)));
277 }
278
279 unsigned short int
f46(unsigned short int x,unsigned long int y)280 f46 (unsigned short int x, unsigned long int y)
281 {
282 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1)));
283 }
284
285 unsigned char
f47(unsigned char x,unsigned int y)286 f47 (unsigned char x, unsigned int y)
287 {
288 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1)));
289 }
290
291 unsigned char
f48(unsigned char x,unsigned long int y)292 f48 (unsigned char x, unsigned long int y)
293 {
294 return (x >> y) | (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1)));
295 }
296
297 unsigned int
f49(unsigned int x,unsigned int y)298 f49 (unsigned int x, unsigned int y)
299 {
300 return (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) ^ (x >> y);
301 }
302
303 unsigned int
f50(unsigned int x,unsigned long int y)304 f50 (unsigned int x, unsigned long int y)
305 {
306 return (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) ^ (x >> y);
307 }
308
309 unsigned int
f51(unsigned int x,int y)310 f51 (unsigned int x, int y __attribute__((unused)))
311 {
312 return (x << ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) ^ (x >> 1);
313 }
314
315 unsigned int
f52(unsigned int x,int y)316 f52 (unsigned int x, int y __attribute__((unused)))
317 {
318 return (x << 1) ^ (x >> ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
319 }
320
321 unsigned short int
f53(unsigned short int x,unsigned int y)322 f53 (unsigned short int x, unsigned int y)
323 {
324 return (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1))) ^ (x >> y);
325 }
326
327 unsigned short int
f54(unsigned short int x,unsigned long int y)328 f54 (unsigned short int x, unsigned long int y)
329 {
330 return (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1))) ^ (x >> y);
331 }
332
333 unsigned char
f55(unsigned char x,unsigned int y)334 f55 (unsigned char x, unsigned int y)
335 {
336 return (x << ((-y) & (__CHAR_BIT__ - 1))) ^ (x >> y);
337 }
338
339 unsigned char
f56(unsigned char x,unsigned long int y)340 f56 (unsigned char x, unsigned long int y)
341 {
342 return (x << ((-y) & (__CHAR_BIT__ - 1))) ^ (x >> y);
343 }
344
345 unsigned int
f57(unsigned int x,unsigned int y)346 f57 (unsigned int x, unsigned int y)
347 {
348 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) ^ (x >> y);
349 }
350
351 unsigned int
f58(unsigned int x,unsigned long int y)352 f58 (unsigned int x, unsigned long int y)
353 {
354 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) ^ (x >> y);
355 }
356
357 unsigned int
f59(unsigned int x,int y)358 f59 (unsigned int x, int y __attribute__((unused)))
359 {
360 return (x << ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) ^ (x >> 1);
361 }
362
363 unsigned int
f60(unsigned int x,int y)364 f60 (unsigned int x, int y __attribute__((unused)))
365 {
366 return (x << 1) ^ (x >> ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
367 }
368
369 unsigned short int
f61(unsigned short int x,unsigned int y)370 f61 (unsigned short int x, unsigned int y)
371 {
372 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1))) ^ (x >> y);
373 }
374
375 unsigned short int
f62(unsigned short int x,unsigned long int y)376 f62 (unsigned short int x, unsigned long int y)
377 {
378 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1))) ^ (x >> y);
379 }
380
381 unsigned char
f63(unsigned char x,unsigned int y)382 f63 (unsigned char x, unsigned int y)
383 {
384 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1))) ^ (x >> y);
385 }
386
387 unsigned char
f64(unsigned char x,unsigned long int y)388 f64 (unsigned char x, unsigned long int y)
389 {
390 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1))) ^ (x >> y);
391 }
392
393 unsigned int
f65(unsigned int x,unsigned int y)394 f65 (unsigned int x, unsigned int y)
395 {
396 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
397 }
398
399 unsigned int
f66(unsigned int x,unsigned long int y)400 f66 (unsigned int x, unsigned long int y)
401 {
402 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
403 }
404
405 unsigned int
f67(unsigned int x,int y)406 f67 (unsigned int x, int y __attribute__((unused)))
407 {
408 return (x << 1) + (x >> ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
409 }
410
411 unsigned int
f68(unsigned int x,int y)412 f68 (unsigned int x, int y __attribute__((unused)))
413 {
414 return (x << ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) + (x >> 1);
415 }
416
417 unsigned short int
f69(unsigned short int x,unsigned int y)418 f69 (unsigned short int x, unsigned int y)
419 {
420 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1)));
421 }
422
423 unsigned short int
f70(unsigned short int x,unsigned long int y)424 f70 (unsigned short int x, unsigned long int y)
425 {
426 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1)));
427 }
428
429 unsigned char
f71(unsigned char x,unsigned int y)430 f71 (unsigned char x, unsigned int y)
431 {
432 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ - 1)));
433 }
434
435 unsigned char
f72(unsigned char x,unsigned long int y)436 f72 (unsigned char x, unsigned long int y)
437 {
438 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ - 1)));
439 }
440
441 unsigned int
f73(unsigned int x,unsigned int y)442 f73 (unsigned int x, unsigned int y)
443 {
444 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
445 }
446
447 unsigned int
f74(unsigned int x,unsigned long int y)448 f74 (unsigned int x, unsigned long int y)
449 {
450 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
451 }
452
453 unsigned int
f75(unsigned int x,int y)454 f75 (unsigned int x, int y __attribute__((unused)))
455 {
456 return (x << 1) + (x >> ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
457 }
458
459 unsigned int
f76(unsigned int x,int y)460 f76 (unsigned int x, int y __attribute__((unused)))
461 {
462 return (x << ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) + (x >> 1);
463 }
464
465 unsigned short int
f77(unsigned short int x,unsigned int y)466 f77 (unsigned short int x, unsigned int y)
467 {
468 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1)));
469 }
470
471 unsigned short int
f78(unsigned short int x,unsigned long int y)472 f78 (unsigned short int x, unsigned long int y)
473 {
474 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1)));
475 }
476
477 unsigned char
f79(unsigned char x,unsigned int y)478 f79 (unsigned char x, unsigned int y)
479 {
480 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1)));
481 }
482
483 unsigned char
f80(unsigned char x,unsigned long int y)484 f80 (unsigned char x, unsigned long int y)
485 {
486 return (x << y) + (x >> ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1)));
487 }
488
489 unsigned int
f81(unsigned int x,unsigned int y)490 f81 (unsigned int x, unsigned int y)
491 {
492 return (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) + (x >> y);
493 }
494
495 unsigned int
f82(unsigned int x,unsigned long int y)496 f82 (unsigned int x, unsigned long int y)
497 {
498 return (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) + (x >> y);
499 }
500
501 unsigned int
f83(unsigned int x,int y)502 f83 (unsigned int x, int y __attribute__((unused)))
503 {
504 return (x << ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) + (x >> 1);
505 }
506
507 unsigned int
f84(unsigned int x,int y)508 f84 (unsigned int x, int y __attribute__((unused)))
509 {
510 return (x << 1) + (x >> ((-1) & (__CHAR_BIT__ * __SIZEOF_INT__ - 1)));
511 }
512
513 unsigned short int
f85(unsigned short int x,unsigned int y)514 f85 (unsigned short int x, unsigned int y)
515 {
516 return (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1))) + (x >> y);
517 }
518
519 unsigned short int
f86(unsigned short int x,unsigned long int y)520 f86 (unsigned short int x, unsigned long int y)
521 {
522 return (x << ((-y) & (__CHAR_BIT__ * __SIZEOF_SHORT__ - 1))) + (x >> y);
523 }
524
525 unsigned char
f87(unsigned char x,unsigned int y)526 f87 (unsigned char x, unsigned int y)
527 {
528 return (x << ((-y) & (__CHAR_BIT__ - 1))) + (x >> y);
529 }
530
531 unsigned char
f88(unsigned char x,unsigned long int y)532 f88 (unsigned char x, unsigned long int y)
533 {
534 return (x << ((-y) & (__CHAR_BIT__ - 1))) + (x >> y);
535 }
536
537 unsigned int
f89(unsigned int x,unsigned int y)538 f89 (unsigned int x, unsigned int y)
539 {
540 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) + (x >> y);
541 }
542
543 unsigned int
f90(unsigned int x,unsigned long int y)544 f90 (unsigned int x, unsigned long int y)
545 {
546 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) + (x >> y);
547 }
548
549 unsigned int
f91(unsigned int x,int y)550 f91 (unsigned int x, int y __attribute__((unused)))
551 {
552 return (x << ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1))) + (x >> 1);
553 }
554
555 unsigned int
f92(unsigned int x,int y)556 f92 (unsigned int x, int y __attribute__((unused)))
557 {
558 return (x << 1) + (x >> ((-1) & (__CHAR_BIT__ * sizeof (unsigned int) - 1)));
559 }
560
561 unsigned short int
f93(unsigned short int x,unsigned int y)562 f93 (unsigned short int x, unsigned int y)
563 {
564 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1))) + (x >> y);
565 }
566
567 unsigned short int
f94(unsigned short int x,unsigned long int y)568 f94 (unsigned short int x, unsigned long int y)
569 {
570 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned short) - 1))) + (x >> y);
571 }
572
573 unsigned char
f95(unsigned char x,unsigned int y)574 f95 (unsigned char x, unsigned int y)
575 {
576 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1))) + (x >> y);
577 }
578
579 unsigned char
f96(unsigned char x,unsigned long int y)580 f96 (unsigned char x, unsigned long int y)
581 {
582 return (x << ((-y) & (__CHAR_BIT__ * sizeof (unsigned char) - 1))) + (x >> y);
583 }
584