rename __swap as __xorswap