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