title: Reasonably portable way to get top 64-bits from 64x64 bit multiply?
body: <p>Is there a reasonably portable way in C/C++ to multiply two 64-bit integers for a 128-bit result and get the <em>top</em> 64-bits of the result, rather than the bottom 64-bits?  I need this for distributing a hash function over an arbitrary sized table.</p>