1  f (x)
       2       unsigned x;
       3  {
       4    return (unsigned) (((unsigned long long) x * 0xAAAAAAAB) >> 32) >> 1;
       5  }
       6  
       7  main ()
       8  {
       9    unsigned i;
      10  
      11    for (i = 0; i < 10000; i++)
      12      if (f (i) != i / 3)
      13        abort ();
      14    exit (0);
      15  }