| |||
| Home > NEON and VFP Programming > VFP instructions > FMAC, FNMAC, FMSC, and FNMSC | |||
Floating-point multiply-accumulate, negate-multiply-accumulate, multiply-subtract and negate-multiply-subtract.
These instructions can be scalar, vector, or mixed (see VFP vector and scalar operations).
<op><precision>{cond}Fd,Fn,Fm
where:
<op>must be one of FMAC, FNMAC, FMSC,
or FNMSC.
<precision>must be either S for single-precision,
or D for double-precision.
condis an optional condition code (see Condition codes).
Fdis the VFP register for the result.
Fnis the VFP register holding the first operand.
Fmis the VFP register holding the second operand.
The precision of , Fd and Fn must
match the precision specified in Fm<.precision>
The FMAC instruction calculates + Fd * Fn and
places the result in Fm.Fd
The FNMAC instruction calculates – Fd * Fn and
places the result in Fm.Fd
The FMSC instruction calculates – + Fd * Fn and
places the result in Fm.Fd
The FNMSC instruction calculates – – Fd * Fn and
places the result in Fm.Fd
These operations can produce Invalid Operation, Overflow, Underflow, or Inexact exceptions.