I don't know of a good way to use your special properties. But I do know a very fast provably good hash.
Choose three random 64-bit integers $x, y, z$ (which must be independent of your input $a, b$). Then the following function $h$:
$$h(a, b) = xa + \lfloor ya / 2^{64}\rfloor + yb + \lfloor zb / 2^{64}\rfloor \mod 2^{64}$$
is an $2^{-63}$-ADU (almost delta universal) hash function, per Short-output universal hash functions and their use in fast and secure data authentication by Long Hoang Nguyen and Andrew William Roscoe. That is, if $(a, b) \neq (a', b')$ then for any $\delta$ (including $\delta = 0$ which implies collision resistance) $$\Pr[h(a, b) + \delta \equiv h(a', b') \mod 2^{64}] \leq 2^{-63}.$$
Note that computing $\lfloor pq / 2^{64}\rfloor$ only takes a single instruction on modern CPUs - it is the high bits of the 64x64-bit product. On Intel x86-64 this is always returned by the MUL instruction which returns both parts, on ARM64 it is given by the MULHI instruction.
So in total computing this hash takes 4 multiplication and 3 addition instructions.
a & b == 0→a | b == a ^ b == a + b) $\endgroup$aandb. I have edited my question to reflect that. $\endgroup$aorbis 49, i.e. there are 15 bits which are never set. The actual number of set bits can be lower than 49 but never more. $\endgroup$