| |||

Home > NEON and VFP Programming > NEON multiply instructions > VQDMULL, VQDMLAL, and VQDMLSL (by vector or by scalar) |

Vector Saturating Doubling Multiply instructions multiply
their operands and double the results. `VQDMULL`

places
the results in the destination register. `VQDMLAL`

adds
the results to the values in the destination register. `VQDMLSL`

subtracts
the results from the values in the destination register.

If any of the results overflow, they are saturated. The sticky QC flag (FPSCR bit[27]) is set if saturation occurs.

VQDL{`op`

}.`cond`

`datatype`

,`Qd`

,`Dn`

`Dm`

VQDL{`op`

}.`cond`

`datatype`

,`Qd`

,`Dn`

[`Dm`

]`x`

where:

`op`

must be one of:

`MUL`

Multiply

`MLA`

Multiply Accumulate

`MLS`

Multiply Subtract.

`cond`

is an optional condition code (see

*Condition codes*).`datatype`

must be either

`S16`

or`S32`

.,`Qd`

`Dn`

are the destination vector and the first operand vector.

`Dm`

is the vector holding the second operand, for a

*by vector*operation.[`Dm`

]`x`

is the scalar holding the second operand, for a

*by scalar*operation.