 Floating-point Parallel Multiply Add Instruction
Floating-point Parallel Multiply Add Instructionfpma
Instruction Type F
Format
(qp) fpma.sf f1 = f3, f4, f2
Description
The pair of products of the pairs of single precision values in the significand fields of f3 and FR f4 are computed to infinite precision and then the pair of single precision values in the significand field of FR f2 is added to these products, again in infinite precision. The resulting values are then rounded to single precision using the rounding mode specified by FPSR.sf.rc. The pair of rounded results are stored in the significand field of FR f1. The exponent field of FR f1 is set to the biased exponent for 2.063 (0x1003E) and the sign field of FR f1 is set to positive (0).
If any of FR f3, FR f4, or FR f2 is a NaTVal, a NaTVal is stored in FR f1 instead of the computed results.
Notes:
If f2 is f0 in the fpma instruction, just the IEEE multiply operation is performed. f1 as an operand is not a packed pair of 1.0 values, it is just the register file format's 1.0 value.
For the encodings and interpretation of the status field's rc, see Floating-point Rounding Control Definitions.
addp - Add Pointer Instruction
andcm - And Complement Instruction
fabs - Floating-point Absolute Value Instruction
fadd - Floating-point Add Instruction
famax - Floating-point Absolute Maximum Instruction
famin - Floating-point Absolute Minimum Instruction
fand - Floating-point AND Instruction
fchkf - Floating-point Check Flags Instruction
fclass - Floating-point Class Instruction
fclrf - Floating-point Clear Flags Instruction
fcmp - Floating-point Compare Instruction
fcvt.xf - Convert Signed Integer to Floating-point Instruction
Floating-Point Arithmetic Instructions
Floating-Point Memory Access Instructions
Floating-Point Non-Arithmetic Instructions
Floating-Point Pseudo-Operations
Floating-Point Register Transfer Instructions
Floating-Point Status Register (FPSR) Status Field Instructions
fma - Floating-point Multiply Add Instruction
fmax - Floating-point Maximum Instruction
fmerge - Floating-point Merge Instruction
fmin - Floating-point Minimum Instruction
fmpy - Floating-point Multiply Instruction
fms - Floating-point Multiply Subtract Instruction
fneg - Floating-point Negate Instruction
fnma - Floating-point Negative Multiply Add Instruction
fnmpy - Floating-point Negative Multiply Instruction
fnorm - Floating-point Normalize Instruction
for - Floating-point OR Instruction
fpabs - Floating-point Parallel Absolute Value Instruction
fpack - Floating-point Pack Instruction
fpamax - Floating-point Parallel Absolute Value Maximum Instruction
fpamin - Floating-point Parallel Absolute Value Minimum Instruction
fpcmp - Floating-point Parallel Compare Instruction
fpcvt.fx - Convert Parallel Floating-point to Integer Instruction
fcvt.xuf - Convert Unsigned Integer to Floating-point Instruction
fpmax - Floating-point Parallel Maximum Instruction
fpmerge - Floating-point Parallel Merge Instructions
fpmin - Floating-point Parallel Minimum Instruction
fpmpy - Floating-point Parallel Multiply Instruction
fpms - Floating-point Parallel Multiply Subtract Instruction
fpneg - Floating-point Parallel Negate Instruction
fpnegabs - Floating-point Parallel Negate Absolute Value Instruction
fpnma - Floating-point Parallel Negative Multiply Add Instruction
fpnmpy - Floating-point Parallel Negative Multiply Instruction
fprcpa - Floating-point Parallel Reciprocal Approximation Instruction
fprsqrta - Floating-point Parallel Reciprocal Square Root Approximation Instruction
frcpa - Floating-point Reciprocal Approximation Instruction
frsqrta - Floating-point Reciprocal Square Root Approximation Instruction
fselect - Floating-point Select Instruction
fsetc - Floating-point Set Controls Instruction
fsub - Floating-point Subtract Instruction
fswap - Floating-point Swap Instruction
fsxt - Floating-point Sign Extend Instruction
fwb - Flush Write Buffers Instruction
fxor - Floating-point Exclusive Or Instruction
getf - Get Floating-point Value or Exponent or Significand Instruction
Integer Multiply and Add (in FP Unit) Instructions
ldf - Floating-point Load Instruction
ldfp - Floating-point Load Pair Instruction
mov fr - Move Floating-point Register Instruction
mov gr - Move General Register Instruction
mov imm - Move Immediate Instruction
padd - Parallel Add Instruction
Parallel Arithmetic Instructions
Parallel Data Arrangement Instructions
pavg - Parallel Average Instruction
pavgsub - Parallel Average Subtract Instruction
pcmp - Parallel Compare Instruction
pmax - Parallel Maximum Instruction
pmin - Parallel Minimum Instruction
pmpy - Parallel Multiply Instruction
pmpyshr - Parallel Multiply and Shift Right Instruction
psad1 - Parallel Sum of Absolute Difference Instruction
pshl - Parallel Shift Left Instruction
pshladd - Parallel Shift Left and Add Instruction
pshr - Parallel Shift Right Instruction
pshradd - Parallel Shift Right and Add Instruction
psub - Parallel Subtract Instruction
setf - Set Floating-point Value, Exponent, or Significand Instruction
shladd - Shift Left and Add Instruction
shladdp - Shift Left and Add Pointer Instruction