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