| |||

Home > NEON and VFP Programming > NEON multiply instructions > VMUL{L}, VMLA{L}, and VMLS{L} (by scalar) |

`VMUL`

(Vector Multiply by scalar) multiplies each
element in a vector by a scalar, and places the results in the destination
vector.

`VMLA`

(Vector Multiply Accumulate) multiplies each
element in a vector by a scalar, and accumulates the results into
the corresponding elements of the destination vector.

`VMLS`

(Vector Multiply Subtract) multiplies each
element in a vector by a scalar, and subtracts the results from the
corresponding elements of the destination vector, and places the
final results in the destination vector.

V{`op`

}.`cond`

{`datatype`

},`Qd`

,`Qn`

[`Dm`

]`x`

V{`op`

}.`cond`

{`datatype`

},`Dd`

,`Dn`

[`Dm`

]`x`

VL{`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 one of:

`I16`

,`I32`

,`F32`

for

`MUL`

,`MLA`

, or`MLS`

`S16`

,`S32`

for

`MULL`

,`MLAL`

, or`MLSL`

`U16`

,`U32`

for

`MULL`

,`MLAL`

, or`MLSL`

.

,`Qd`

`Qn`

are the destination vector and the first operand vector, for a quadword operation.

,`Dd`

`Dn`

are the destination vector and the first operand vector, for a doubleword operation.

,`Qd`

`Dn`

are the destination vector and the first operand vector, for a long operation.

[`Dm`

]`x`

is the scalar holding the second operand.