IKAX7QBJIVJZSXXD6I6UBMPEVPEH3QFNEYGWJKQWMV64IV5U664QC
s1 = a `shiftR` bit m -- a = a1D+a2
s2 = a .^. (s1 `shiftL` bit m)
t1 = b `shiftR` bit m -- b = b1D+b2
t2 = b .^. (t1 `shiftL` bit m)
s1 = a .>>. bit m -- a = a1D+a2
s2 = a .^. (s1 .<<. bit m)
t1 = b .>>. bit m -- b = b1D+b2
t2 = b .^. (t1 .<<. bit m)