5.10.10. VRECPS and VRSQRTS

VRECPS (Vector Reciprocal Step) multiplies the elements of one vector by the corresponding elements of another vector, subtracts each of the results from 2, and places the final results into the elements of the destination vector.

VRSQRTS (Vector Reciprocal Square Root Step) multiplies the elements of one vector by the corresponding elements of another vector, subtracts each of the results from 3, divides these results by two, and places the final results into the elements of the destination vector.

Syntax

Vop{cond}.F32 {Qd}, Qn, Qm
Vop{cond}.F32 {Dd}, Dn, Dm

where:

op

must be either RECPS or RSQRTS.

cond

is an optional condition code (see Condition codes).

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.

Results for out-of-range inputs

Table 5.11 shows the results where input values are out of range.

Table 5.11. Results for out-of-range inputs

1st operand element2nd operand elementResult element (VRECPS)Result element (VRSQRTS)
NaN-Default NaNDefault NaN
-NaNDefault NaNDefault NaN
+/- 0.0 or denormal+/- infinity2.01.5
+/- infinity+/- 0.0 or denormal2.01.5

Usage

The Newton-Raphson iteration:

xn+1 = xn(2-dxn)

converges to (1/d) if x0 is the result of VRECPE applied to d.

The Newton-Raphson iteration:

xn+1 = xn(3-dxn2)/2

converges to (1/d)if x0 is the result of VRSQRTE applied to d.

Copyright © 2002-2010 ARM. All rights reserved.ARM DUI 0204J
Non-ConfidentialID101213