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