Non-Confidential | PDF version | ARM DUI0473M | ||

| ||||

Home > NEON Instructions > VRSQRTS |

Vector Reciprocal Square Root Step.

`VRSQRTS`

{

}`cond`

`.F32`

{

}, `Qd`

,
`Qn`

`Qm`

`VRSQRTS`

{

}`cond`

`.F32`

{

}, `Dd`

,
`Dn`

`Dm`

where:

`cond`

is an optional condition code.

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

`VRSQRTS`

multiplies the elements of one vector by the corresponding
elements of another vector, subtracts each of the results from three, divides these results
by two, and places the final results into the elements of the destination vector.

The Newton-Raphson iteration:

`x`

_{n+1}

` = `

`x`

_{n}

`(3-``dx`

_{n}^{2})/2

converges to (

√`1/`

)
if `d`

`x`

_{0} is the result of
`VRSQRTE`

applied to

.`d`

The following table shows the results where input values are out of range:

**Table 12-18 Results for out-of-range inputs in VRSQRTS**

1st operand element | 2nd operand element | Result element |
---|---|---|

NaN | - | Default NaN |

- | NaN | Default NaN |

+/– 0.0 or denormal | +/– infinity | 1.5 |

+/– infinity | +/– 0.0 or denormal | 1.5 |