3.11.8. VFMA and VFMS

Floating-point Fused Multiply Accumulate and Subtract.

Syntax

VFMA{cond}.F<32|64> {<Sd|Dd>,} <Sn|Dn>, <Sm|Dm>
VFMS{cond}.F<32|64> {<Sd|Dd>,} <Sn|Dn>, <Sm|Dm>

Where:

cond

Is an optional condition code. See Conditional execution.

<Sd|Dd>

Is the destination register.

<Sn|Dn>, <Sm|Dm>

Are the operand registers.

Operation

The VFMA instruction:

  1. Multiplies the floating-point values in the operand registers.

  2. Accumulates the results into the destination register.

The result of the multiply is not rounded before the accumulation.

The VFMS instruction:

  1. Negates the first operand register.

  2. Multiplies the floating-point values of the first and second operand registers.

  3. Adds the products to the destination register.

  4. Places the results in the destination register.

The result of the multiply is not rounded before the addition.

Restrictions

There are no restrictions.

Condition flags

These instructions do not change the flags.

Copyright © 2015, 2018 Arm. All rights reserved.ARM DUI 0646C
Non-ConfidentialID121118