Large Integer Functions

The following functions are used with large integers.

In this section

Function Description
Int32x32To64
Multiplies two signed 32-bit integers, returning a signed 64-bit integer result.
Int64ShllMod32
Performs a left logical shift operation on an unsigned 64-bit integer value. The function provides improved shifting code for left logical shifts where the shift count is in the range 0-31.
Int64ShraMod32
Performs a right arithmetic shift operation on a signed 64-bit integer value. The function provides improved shifting code for right arithmetic shifts where the shift count is in the range 0-31.
Int64ShrlMod32
Performs a right logical shift operation on an unsigned 64-bit integer value. The function provides improved shifting code for right logical shifts where the shift count is in the range 0-31.
MulDiv
Multiplies two 32-bit values and then divides the 64-bit result by a third 32-bit value.
Multiply128
Multiplies two 64-bit integers to produce a 128-bit integer.
MultiplyExtract128
Multiplies two 64-bit integers to produce a 128-bit integer, shifts the product to the right by the specified number of bits, and returns the low 64 bits of the result.
MultiplyHigh
Multiplies two 64-bit integers to produce a 128-bit integer and gets the high 64 bits.
PopulationCount64
Counts the number of one bits (population count) in a 64-bit unsigned integer.
ShiftLeft128
Shifts 128-bit left.
ShiftRight128
Shifts 128-bit right.
UInt32x32To64
Multiplies two unsigned 32-bit integers, returning an unsigned 64-bit integer result.
UnsignedMultiply128
Multiplies two unsigned 64-bit integers to produce an unsigned 128-bit integer.
UnsignedMultiplyExtract128
Multiplies two unsigned 64-bit integers to produce an unsigned 128-bit integer, shifts the product to the right by the specified number of bits, and returns the low 64 bits of the result.
UnsignedMulitplyHigh
Multiplies two 64-bit integers to produce a 128-bit integer and gets the high unsigned 64 bits.