| |||

Home > NEON and VFP Programming > NEON multiply instructions > VQ{R}DMULH (by vector or by scalar) |

Vector Saturating Doubling Multiply instructions multiply their operands and double the results. They return only the high half of the results.

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

VQ{R}DMULH{}.`cond`

{`datatype`

},`Qd`

,`Qn`

`Qm`

VQ{R}DMULH{}.`cond`

{`datatype`

},`Dd`

,`Dn`

`Dm`

VQ{R}DMULH{}.`cond`

{`datatype`

},`Qd`

,`Qn`

[`Dm`

]`x`

VQ{R}DMULH{}.`cond`

{`datatype`

},`Dd`

,`Dn`

[`Dm`

]`x`

where:

`R`

if present, indicates that each result is rounded. Otherwise, each result is truncated.

`cond`

is an optional condition code (see

*Condition codes*).`datatype`

must be either

`S16`

or`S32`

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

or`Qm`

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