User's Manual
IBM PowerPC 750GX and 750GL RISC Microprocessor
Table 2-12. Floating-Point Arithmetic Instructions
Name
Floating Add (Double-Precision)
Floating Add Single
Floating Subtract (Double-Precision)
Floating Subtract Single
Floating Multiply (Double-Precision)
Floating Multiply Single
Floating Divide (Double-Precision)
Floating Divide Single
Floating Reciprocal Estimate Single
Floating Reciprocal Square Root Estimate
1
Floating Select
1. The fres, frsqrte, and fsel instructions are optional in the PowerPC Architecture.
Double-precision arithmetic instructions, except those involving multiplication (fmul, fmadd, fmsub, fnmadd,
fnmsub) execute with the same latency as their single-precision equivalents. For additional details on
floating-point performance, see Chapter 6, Instruction Timing, on page 209.
Floating-Point Multiply/Add Instructions
These instructions combine multiply and add operations without an intermediate rounding operation. The
floating-point multiply/add instructions are summarized in Table 2-13.
Table 2-13. Floating-Point Multiply/Add Instructions
Name
Floating Multiply/Add (Double-Precision)
Floating Multiply/Add Single
Floating Multiply/Subtract (Double-Precision)
Floating Multiply/Subtract Single
Floating Negative Multiply/Add (Double-Precision)
Floating Negative Multiply/Add Single
Floating Negative Multiply/Subtract (Double-Preci-
sion)
Floating Negative Multiply/Subtract Single
Floating-Point Rounding and Conversion Instructions
The Floating Round to Single-Precision (frsp) instruction is used to truncate a 64-bit double-precision number
to a 32-bit single-precision floating-point number. The floating-point convert instructions convert a 64-bit
double-precision floating-point number to a 32-bit signed integer number.
Programming Model
Page 96 of 377
1
1
Mnemonic
fadd (fadd.)
fadds (fadds.)
fsub (fsub.)
fsubs (fsubs.)
fmul (fmul.)
fmuls (fmuls.)
fdiv (fdiv.)
fdivs (fdivs.)
fres (fres.)
frsqrte (frsqrte.)
fsel (fsel.)
Mnemonic
fmadd (fmadd.)
fmadds (fmadds.)
fmsub (fmsub.)
fmsubs (fmsubs.)
fnmadd (fnmadd.)
fnmadds (fnmadds.)
fnmsub (fnmsub.)
fnmsubs (fnmsubs.)
Syntax
frD,frA,frB
frD,frA,frB
frD,frA,frB
frD,frA,frB
frD,frA,frC
frD,frA,frC
frD,frA,frB
frD,frA,frB
frD,frB
frD,frB
frD,frA,frC,frB
Syntax
frD,frA,frC,frB
frD,frA,frC,frB
frD,frA,frC,frB
frD,frA,frC,frB
frD,frA,frC,frB
frD,frA,frC,frB
frD,frA,frC,frB
frD,frA,frC,frB
gx_02.fm.(1.2)
March 27, 2006