3.11.9. VFNMA and VFNMS

Floating-point Fused Negate Multiply Accumulate and Subtract.

Syntax

VFNMA{cond}.F<32|64> {<Sd|Dd>,} <Sn|Dn>, <Sm|Dm>
VFNMS{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 VFNMA instruction:

  1. Negates the first floating-point operand register.

  2. Multiplies the first floating-point operand with second floating-point operand.

  3. Adds the negation of the floating -point destination register to the product.

  4. Places the result into the destination register.

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

The VFNMS instruction:

  1. Multiplies the first floating-point operand with second floating-point operand.

  2. Adds the negation of the floating-point value in the destination register to the product.

  3. Places the result 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