(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr106513.c
       1  /* { dg-do run } */
       2  
       3  typedef __INT64_TYPE__ int64_t;
       4  
       5  __attribute__((noinline)) int64_t
       6  swap64 (int64_t n)
       7  {
       8    return (((n & (((int64_t) 0xff) )) << 56) |
       9            ((n & (((int64_t) 0xff) << 8)) << 40) |
      10            ((n & (((int64_t) 0xff) << 16)) << 24) |
      11            ((n & (((int64_t) 0xff) << 24)) << 8) |
      12            ((n & (((int64_t) 0xff) << 32)) >> 8) |
      13            ((n & (((int64_t) 0xff) << 40)) >> 24) |
      14            ((n & (((int64_t) 0xff) << 48)) >> 40) |
      15            ((n & ((int64_t)(0xffull << 56))) >> 56));
      16  }
      17  
      18  int main (void)
      19  {
      20    volatile int64_t n = 0x8000000000000000ll;
      21  
      22    if (swap64(n) != 0xffffffffffffff80ll)
      23      __builtin_abort ();
      24  
      25    return 0;
      26  }