optimize xor