libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / pr106513.c
blobaa4f4d513d7524761da16fd3c713425b27edfe6b
1 /* { dg-do run } */
3 typedef __INT64_TYPE__ int64_t;
5 __attribute__((noinline)) int64_t
6 swap64 (int64_t n)
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));
18 int main (void)
20 volatile int64_t n = 0x8000000000000000ll;
22 if (swap64(n) != 0xffffffffffffff80ll)
23 __builtin_abort ();
25 return 0;