64x64 Multiplication

Multiplying 64-bit operands on a 32-bit processor is most efficiently implemented by thinking of each operand as the combination of two 32-bit components as in

   A63..0 = 232A63..32 + A31..0

The 128-bit unsigned product of two 64-bit operands then becomes the sum of four 64-bit partial products of two 32-bit components, with two of the partial products shifted left by 32 bits and one by 64 bits. At most two simple adjustments are needed to convert the unsigned product into a signed product.

Shorter instruction sequences are usually possible in applications where one or more of the 32-bit components will always be all 0's.

(Click anywhere to remove this message.)

64 x 64 Multiplication
Revised: Thursday, 23-Jun-2022 20:38:36 PDT
Operand Data Type: uint64_t int64_t Q32.32
Operands Decimal Hex ARM Assembly
A (64 bits):
B (64 bits):
Computation
User
Entry
Required
for Product
Not Required
for Product
Final 64-Bit
Product
Product
Overflow
Product
Underflow
Not Required:
Operand is integer