code: func spread(x uint32) uint64 {
  	X := uint64(x)
  	X = (X | (X << 16)) & 0x0000ffff0000ffff
  	X = (X | (X << 8)) & 0x00ff00ff00ff00ff
  	X = (X | (X << 4)) & 0x0f0f0f0f0f0f0f0f
  	X = (X | (X << 2)) & 0x3333333333333333
  	X = (X | (X << 1)) & 0x5555555555555555
  	return X
  }
docs: // Spread out the 32 bits of x into 64 bits, where the bits of x occupy even
  // bit positions.