User Guide

226 64-Bit Media Programming
AMD64 Technology 24592—Rev. 3.15—November 2009
Division
For a description of floating-point division techniques, see “Reciprocal Estimation” on page 227.
Division is equivalent to multiplication of the dividend by the reciprocal of the divisor.
Accumulation
PFACC—Packed Floating-Point Accumulate
PFNACC—Packed Floating-Point Negative Accumulate
PFPNACC—Packed Floating-Point Positive-Negative Accumulate
The PFACC instruction adds the two single-precision floating-point values in the first operand and
writes the result into the low-order word of the destination, and it adds the two single-precision values
in the second operand and writes the result into the high-order word of the destination. Figure 5-17
illustrates the operation.
Figure 5-17. PFACC Accumulate Operation
The PFNACC instruction subtracts the first operand’s high-order single-precision floating-point value
from its low-order single-precision floating-point value and writes the result into the low-order
doubleword of the destination, and it subtracts the second operand’s high-order single-precision
floating-point value from its low-order single-precision floating-point value and writes the result into
the high-order doubleword of the destination.
The PFPNACC instruction subtracts the first operand’s high-order single-precision floating-point
value from its low-order single-precision floating-point value and writes the result into the low-order
doubleword of the destination, and it adds the two single-precision values in the second operand and
writes the result into the high-order doubleword of the destination.
PFPNACC is useful in complex-number multiplication, in which mixed positive-negative
accumulation must be performed. Assuming that complex numbers are represented as two-element
513-183.eps
operand 1
result
63 0
operand 2
63 063 0
+ +