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