### 5.11.1. VMUL{L}, VMLA{L}, and VMLS{L}

`VMUL` (Vector Multiply) multiplies corresponding elements in two vectors, and places the results in the destination vector.

`VMLA` (Vector Multiply Accumulate) multiplies corresponding elements in two vectors, and accumulates the results into the elements of the destination vector.

`VMLS` (Vector Multiply Subtract) multiplies corresponding elements in two vectors, subtracts the results from corresponding elements of the destination vector, and places the final results in the destination vector.

#### Syntax

```V`op`{`cond`}.`datatype` {`Qd`}, `Qn`, `Qm`
```
```V`op`{`cond`}.`datatype` {`Dd`}, `Dn`, `Dm`
```
```V`op`L{`cond`}.`datatype` `Qd`, `Dn`, `Dm`
```

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:

`I8`, `I16`, `I32`, `F32`

for `MUL`, `MLA`, or `MLS`

`S8`, `S16`, `S32`

for `MULL`, `MLAL`, or `MLSL`

`U8`, `U16`, `U32`

for `MULL`, `MLAL`, or `MLSL`

`P8`

for `MUL` or `MULL`.

See Polynomial arithmetic over {0,1} for information about datatype `P8`.

`Qd, Qn, Qm`

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

`Dd, Dn, Dm`

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

`Qd, Dn, Dm`

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

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