1 /* { dg-do compile } */
2 /* { dg-require-effective-target ia32 } */
3 /* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i486" } } */
4 /* { dg-options "-O2 -march=i486" } */
7 foo (unsigned long long *p
)
9 unsigned long long tmp
;
11 tmp
= (tmp
>> 32) | (tmp
<< 32);
12 tmp
= (((tmp
& 0xff00ff00ff00ff00ULL
) >> 8)
13 | ((tmp
& 71777214294589695ULL) << 8));
14 *p
= (((tmp
& 0xffff0000ffff0000ULL
) >> 16)
15 | ((tmp
& 281470681808895ULL) << 16));
18 /* { dg-final { scan-assembler-times "bswap" 2 } } */