Single-Precision Floating-Point Square-Root Reciprocal Approximation
RSQRSP
3-203
Instruction Set
SPRU733
Single-Precision Floating-Point Square-Root Reciprocal Approximation
RSQRSP
Syntax
RSQRSP
(.unit)
src2
,
dst
.unit = .S1 or .S2
Compatibility
C67x and C67x+ CPU
Opcode
31
29
28
27
23
22
18
17
13
12
11
6
5
4
3
2
1
0
creg
z
dst
src2
0 0 0 0 0 x 1 1 1 1 1 0 1 0 0 0
s p
3
1
5
5
1
1
1
Opcode map field used...
For operand type...
Unit
src2
dst
xsp
sp
.S1, .S2
Description
The single-precision floating-point square-root reciprocal approximation value
of
src2
is placed in
dst
.
The
RSQRSP
instruction provides the correct exponent, and the mantissa is
accurate to the eighth binary position (therefore, mantissa error is less
than 2
−
8
). This estimate can be used as a seed value for an algorithm to
compute the reciprocal square root to greater accuracy.
The Newton-Rhapson algorithm can further extend the mantissa’s precision:
x[n + 1] = x[n](1.5
−
(v/2)
×
x[n]
×
x[n])
where v = the number whose reciprocal square root is to be found.
x[0], the seed value for the algorithm, is given by
RSQRSP
. For each iteration,
the accuracy doubles. Thus, with one iteration, accuracy is 16 bits in the
mantissa; with the second iteration, the accuracy is the full 23 bits.
Execution
if (cond)
sqrcp(
src2
)
→
dst
else
nop