(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
builtin-bswap-13.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-tree-optimized" } */
       3  
       4  int test_s32_0_1(int x) { return __builtin_bswap32(x) & 1; }
       5  int test_s32_0_2(int x) { return __builtin_bswap32(x) & 2; }
       6  int test_s32_0_240(int x) { return __builtin_bswap32(x) & 240; }
       7  int test_s32_0_255(int x) { return __builtin_bswap32(x) & 255; }
       8  int test_s32_1_1(int x) { return (__builtin_bswap32(x) >> 1) & 1; }
       9  int test_s32_7_1(int x) { return (__builtin_bswap32(x) >> 7) & 1; }
      10  int test_s32_8_1(int x) { return (__builtin_bswap32(x) >> 8) & 1; }
      11  int test_s32_8_240(int x) { return (__builtin_bswap32(x) >> 8) & 240; }
      12  int test_s32_8_255(int x) { return (__builtin_bswap32(x) >> 8) & 255; }
      13  int test_s32_15_1(int x) { return (__builtin_bswap32(x) >> 15) & 1; }
      14  int test_s32_16_1(int x) { return (__builtin_bswap32(x) >> 16) & 1; }
      15  int test_s32_16_240(int x) { return (__builtin_bswap32(x) >> 16) & 240; }
      16  int test_s32_16_255(int x) { return (__builtin_bswap32(x) >> 16) & 255; }
      17  int test_s32_24_1(int x) { return (__builtin_bswap32(x) >> 24) & 1; }
      18  int test_s32_24_240(int x) { return (__builtin_bswap32(x) >> 24) & 240; }
      19  int test_s32_24_255(int x) { return (__builtin_bswap32(x) >> 24) & 255; }
      20  int test_s32_31_1(int x) { return (__builtin_bswap32(x) >> 31) & 1; }
      21  
      22  int test_S32_0_1(int x) { return (int)__builtin_bswap32(x) & 1; }
      23  int test_S32_0_2(int x) { return (int)__builtin_bswap32(x) & 2; }
      24  int test_S32_0_240(int x) { return (int)__builtin_bswap32(x) & 240; }
      25  int test_S32_0_255(int x) { return (int)__builtin_bswap32(x) & 255; }
      26  int test_S32_1_1(int x) { return ((int)__builtin_bswap32(x) >> 1) & 1; }
      27  int test_S32_7_1(int x) { return ((int)__builtin_bswap32(x) >> 7) & 1; }
      28  int test_S32_8_1(int x) { return ((int)__builtin_bswap32(x) >> 8) & 1; }
      29  int test_S32_8_240(int x) { return ((int)__builtin_bswap32(x) >> 8) & 240; }
      30  int test_S32_8_255(int x) { return ((int)__builtin_bswap32(x) >> 8) & 255; }
      31  int test_S32_15_1(int x) { return ((int)__builtin_bswap32(x) >> 15) & 1; }
      32  int test_S32_16_1(int x) { return ((int)__builtin_bswap32(x) >> 16) & 1; }
      33  int test_S32_16_240(int x) { return ((int)__builtin_bswap32(x) >> 16) & 240; }
      34  int test_S32_16_255(int x) { return ((int)__builtin_bswap32(x) >> 16) & 255; }
      35  int test_S32_24_1(int x) { return ((int)__builtin_bswap32(x) >> 24) & 1; }
      36  int test_S32_24_240(int x) { return ((int)__builtin_bswap32(x) >> 24) & 240; }
      37  int test_S32_24_255(int x) { return ((int)__builtin_bswap32(x) >> 24) & 255; }
      38  int test_S32_31_1(int x) { return ((int)__builtin_bswap32(x) >> 31) & 1; }
      39  
      40  unsigned int test_u32_24_255(unsigned int x) {
      41    return (__builtin_bswap32(x) >> 24) & 255;
      42  }
      43  
      44  long long test_s64_0_1(long long x) {
      45    return __builtin_bswap64(x) & 1;
      46  }
      47  long long test_s64_0_2(long long x) {
      48    return __builtin_bswap64(x) & 2;
      49  }
      50  long long test_s64_0_240(long long x) {
      51    return __builtin_bswap64(x) & 240;
      52  }
      53  long long test_s64_0_255(long long x) {
      54    return __builtin_bswap64(x) & 255;
      55  }
      56  long long test_s64_7_1(long long x) {
      57    return (__builtin_bswap64(x) >> 7) & 1;
      58  }
      59  long long test_s64_8_1(long long x) {
      60    return (__builtin_bswap64(x) >> 8) & 1;
      61  }
      62  long long test_s64_8_240(long long x) {
      63    return (__builtin_bswap64(x) >> 56) & 240;
      64  }
      65  long long test_s64_8_255(long long x) {
      66    return (__builtin_bswap64(x) >> 8) & 255;
      67  }
      68  long long test_s64_9_1(long long x) {
      69    return (__builtin_bswap64(x) >> 9) & 1;
      70  }
      71  long long test_s64_31_1(long long x) {
      72    return (__builtin_bswap64(x) >> 31) & 1;
      73  }
      74  long long test_s64_32_1(long long x) {
      75    return (__builtin_bswap64(x) >> 32) & 1;
      76  }
      77  long long test_s64_32_240(long long x) {
      78    return (__builtin_bswap64(x) >> 32) & 240;
      79  }
      80  long long test_s64_32_255(long long x) {
      81    return (__builtin_bswap64(x) >> 32) & 255;
      82  }
      83  long long test_s64_33_1(long long x) {
      84    return (__builtin_bswap64(x) >> 33) & 1;
      85  }
      86  long long test_s64_48_1(long long x) {
      87    return (__builtin_bswap64(x) >> 48) & 1;
      88  }
      89  long long test_s64_48_240(long long x) {
      90    return (__builtin_bswap64(x) >> 48) & 240;
      91  }
      92  long long test_s64_48_255(long long x) {
      93    return (__builtin_bswap64(x) >> 48) & 255;
      94  }
      95  long long test_s64_56_1(long long x) {
      96    return (__builtin_bswap64(x) >> 56) & 1;
      97  }
      98  long long test_s64_56_240(long long x) {
      99    return (__builtin_bswap64(x) >> 56) & 240;
     100  }
     101  long long test_s64_56_255(long long x) {
     102    return (__builtin_bswap64(x) >> 56) & 255;
     103  }
     104  long long test_s64_57_1(long long x) {
     105    return (__builtin_bswap64(x) >> 57) & 1;
     106  }
     107  long long test_s64_63_1(long long x) {
     108    return (__builtin_bswap64(x) >> 63) & 1;
     109  }
     110  
     111  long long test_S64_0_1(long long x) {
     112    return (long long)__builtin_bswap64(x) & 1;
     113  }
     114  long long test_S64_0_2(long long x) {
     115    return (long long)__builtin_bswap64(x) & 2;
     116  }
     117  long long test_S64_0_240(long long x) {
     118    return (long long)__builtin_bswap64(x) & 240;
     119  }
     120  long long test_S64_0_255(long long x) {
     121    return (long long)__builtin_bswap64(x) & 255;
     122  }
     123  long long test_S64_7_1(long long x) {
     124    return ((long long)__builtin_bswap64(x) >> 7) & 1;
     125  }
     126  long long test_S64_8_1(long long x) {
     127    return ((long long)__builtin_bswap64(x) >> 8) & 1;
     128  }
     129  long long test_S64_8_240(long long x) {
     130    return ((long long)__builtin_bswap64(x) >> 56) & 240;
     131  }
     132  long long test_S64_8_255(long long x) {
     133    return ((long long)__builtin_bswap64(x) >> 8) & 255;
     134  }
     135  long long test_S64_9_1(long long x) {
     136    return ((long long)__builtin_bswap64(x) >> 9) & 1;
     137  }
     138  long long test_S64_31_1(long long x) {
     139    return ((long long)__builtin_bswap64(x) >> 31) & 1;
     140  }
     141  long long test_S64_32_1(long long x) {
     142    return ((long long)__builtin_bswap64(x) >> 32) & 1;
     143  }
     144  long long test_S64_32_240(long long x) {
     145    return ((long long)__builtin_bswap64(x) >> 32) & 240;
     146  }
     147  long long test_S64_32_255(long long x) {
     148    return ((long long)__builtin_bswap64(x) >> 32) & 255;
     149  }
     150  long long test_S64_33_1(long long x) {
     151    return ((long long)__builtin_bswap64(x) >> 33) & 1;
     152  }
     153  long long test_S64_48_1(long long x) {
     154    return ((long long)__builtin_bswap64(x) >> 48) & 1;
     155  }
     156  long long test_S64_48_240(long long x) {
     157    return ((long long)__builtin_bswap64(x) >> 48) & 240;
     158  }
     159  long long test_S64_48_255(long long x) {
     160    return ((long long)__builtin_bswap64(x) >> 48) & 255;
     161  }
     162  long long test_S64_56_1(long long x) {
     163    return ((long long)__builtin_bswap64(x) >> 56) & 1;
     164  }
     165  long long test_S64_56_240(long long x) {
     166    return ((long long)__builtin_bswap64(x) >> 56) & 240;
     167  }
     168  long long test_S64_56_255(long long x) {
     169    return ((long long)__builtin_bswap64(x) >> 56) & 255;
     170  }
     171  long long test_S64_57_1(long long x) {
     172    return ((long long)__builtin_bswap64(x) >> 57) & 1;
     173  }
     174  long long test_S64_63_1(long long x) {
     175    return ((long long)__builtin_bswap64(x) >> 63) & 1;
     176  }
     177  
     178  unsigned long long test_u64_56_255(unsigned long long x) {
     179    return (__builtin_bswap64(x) >> 56) & 255;
     180  }
     181  
     182  short test_s16_0_1(short x) {
     183    return __builtin_bswap16(x) & 1;
     184  }
     185  short test_s16_0_240(short x) {
     186    return __builtin_bswap16(x) & 240;
     187  }
     188  short test_s16_0_255(short x) {
     189    return __builtin_bswap16(x) & 255;
     190  }
     191  short test_s16_1_1(short x) {
     192    return (__builtin_bswap16(x) >> 1) & 1;
     193  }
     194  short test_s16_7_1(short x) {
     195    return (__builtin_bswap16(x) >> 7) & 1;
     196  }
     197  short test_s16_8_1(short x) {
     198    return (__builtin_bswap16(x) >> 8) & 1;
     199  }
     200  short test_s16_8_240(short x) {
     201    return (__builtin_bswap16(x) >> 8) & 240;
     202  }
     203  short test_s16_8_255(short x) {
     204    return (__builtin_bswap16(x) >> 8) & 255;
     205  }
     206  short test_s16_9_1(short x) {
     207    return (__builtin_bswap16(x) >> 9) & 1;
     208  }
     209  short test_s16_15_1(short x) {
     210    return (__builtin_bswap16(x) >> 15) & 1;
     211  }
     212  
     213  short test_S16_0_1(short x) {
     214    return (short)__builtin_bswap16(x) & 1;
     215  }
     216  short test_S16_0_240(short x) {
     217    return (short)__builtin_bswap16(x) & 240;
     218  }
     219  short test_S16_0_255(short x) {
     220    return (short)__builtin_bswap16(x) & 255;
     221  }
     222  short test_S16_1_1(short x) {
     223    return ((short)__builtin_bswap16(x) >> 1) & 1;
     224  }
     225  short test_S16_7_1(short x) {
     226    return ((short)__builtin_bswap16(x) >> 7) & 1;
     227  }
     228  short test_S16_8_1(short x) {
     229    return ((short)__builtin_bswap16(x) >> 8) & 1;
     230  }
     231  short test_S16_8_240(short x) {
     232    return ((short)__builtin_bswap16(x) >> 8) & 240;
     233  }
     234  short test_S16_8_255(short x) {
     235    return ((short)__builtin_bswap16(x) >> 8) & 255;
     236  }
     237  short test_S16_9_1(short x) {
     238    return ((short)__builtin_bswap16(x) >> 9) & 1;
     239  }
     240  short test_S16_15_1(short x) {
     241    return ((short)__builtin_bswap16(x) >> 15) & 1;
     242  }
     243  
     244  unsigned short test_u16_8_255(unsigned short x) {
     245    return (__builtin_bswap16(x) >> 8) & 255;
     246  }
     247  
     248  
     249  /* Shifts only */
     250  int test_s32_24(int x) {
     251    return __builtin_bswap32(x) >> 24;
     252  }
     253  int test_s32_25(int x) {
     254    return __builtin_bswap32(x) >> 25;
     255  }
     256  int test_s32_30(int x) {
     257    return __builtin_bswap32(x) >> 30;
     258  }
     259  int test_s32_31(int x) {
     260    return __builtin_bswap32(x) >> 31;
     261  }
     262  
     263  unsigned int test_u32_24(unsigned int x) {
     264   return __builtin_bswap32(x) >> 24;
     265  }
     266  unsigned int test_u32_25(unsigned int x) {
     267   return __builtin_bswap32(x) >> 25;
     268  }
     269  unsigned int test_u32_30(unsigned int x) {
     270   return __builtin_bswap32(x) >> 30;
     271  }
     272  unsigned int test_u32_31(unsigned int x) {
     273   return __builtin_bswap32(x) >> 31;
     274  }
     275  
     276  long long test_s64_56(long long x) {
     277    return __builtin_bswap64(x) >> 56;
     278  }
     279  long long test_s64_57(long long x) {
     280    return __builtin_bswap64(x) >> 57;
     281  }
     282  long long test_s64_62(long long x) {
     283    return __builtin_bswap64(x) >> 62;
     284  }
     285  long long test_s64_63(long long x) {
     286    return __builtin_bswap64(x) >> 63;
     287  }
     288  
     289  unsigned long long test_u64_56(unsigned long long x) {
     290    return __builtin_bswap64(x) >> 56;
     291  }
     292  unsigned long long test_u64_57(unsigned long long x) {
     293    return __builtin_bswap64(x) >> 57;
     294  }
     295  unsigned long long test_u64_62(unsigned long long x) {
     296    return __builtin_bswap64(x) >> 62;
     297  }
     298  unsigned long long test_u64_63(unsigned long long x) {
     299    return __builtin_bswap64(x) >> 63;
     300  }
     301  
     302  short test_s16_8(short x) {
     303    return __builtin_bswap16(x) >> 8;
     304  }
     305  short test_s16_9(short x) {
     306    return __builtin_bswap16(x) >> 9;
     307  }
     308  short test_s16_14(short x) {
     309    return __builtin_bswap16(x) >> 14;
     310  }
     311  short test_s16_15(short x) {
     312    return __builtin_bswap16(x) >> 15;
     313  }
     314  
     315  unsigned short test_u16_8(unsigned short x) {
     316    return __builtin_bswap16(x) >> 8;
     317  }
     318  unsigned short test_u16_9(unsigned short x) {
     319    return __builtin_bswap16(x) >> 9;
     320  }
     321  unsigned short test_u16_14(unsigned short x) {
     322    return __builtin_bswap16(x) >> 14;
     323  }
     324  unsigned short test_u16_15(unsigned short x) {
     325    return __builtin_bswap16(x) >> 15;
     326  }
     327  
     328  /* { dg-final { scan-tree-dump-not "__builtin_bswap" "optimized" } } */
     329