Double-Precision Floating-Point Reciprocal Approximation
RCPDP
3-197
Instruction Set
SPRU733
Double-Precision Floating-Point Reciprocal Approximation
RCPDP
Syntax
RCPDP
(.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
reserved
x 1 0 1 1 0 1 1 0 0 0
s p
3
1
5
5
5
1
1
1
Opcode map field used...
For operand type...
Unit
src2
dst
dp
dp
.S1, .S2
Description
The 64-bit double-precision floating-point reciprocal approximation value of
src2
is placed in
dst
. The operand is read in one cycle by using the
src1
port
for the 32 LSBs and the
src2
port for the 32 MSBs.
The
RCPDP
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 to greater accuracy.
The Newton-Rhapson algorithm can further extend the mantissa’s precision:
x[n + 1] = x[n](2
−
v
×
x[n])
where v = the number whose reciprocal is to be found.
x[0], the seed value for the algorithm, is given by
RCPDP
. For each iteration,
the accuracy doubles. Thus, with one iteration, accuracy is 16 bits in the
mantissa; with the second iteration, the accuracy is 32 bits; with the third itera-
tion, the accuracy is the full 52 bits.
Execution
if (cond)
rcp(
src2
)
→
dst
else
nop