### 5.11.2. 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.

#### Syntax

```V`op`{`cond`}.`datatype` {`Qd`}, `Qn`, `Dm`[`x`]
```
```V`op`{`cond`}.`datatype` {`Dd`}, `Dn`, `Dm`[`x`]
```
```V`op`L{`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.

 Copyright © 2002-2010 ARM. All rights reserved. ARM DUI 0204J Non-Confidential ID101213 PDF version