| |||

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.

`datatype`

must be one of:

`I16`

,`I32`

,`F32`

for

`VMUL`

,`VMLA`

, or`VMLS`

`S16`

,`S32`

for

`VMULL`

,`VMLAL`

, or`VMLSL`

`U16`

,`U32`

for

`VMULL`

,`VMLAL`

, or`VMLSL`

.

,`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.

- Reference: