It is interesting to wonder if you can do better on the x86 by using the floating-point unit for the 64-bit integer multiply unit.