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 }