Encoding:

POOL32F

010101

ft

fs

0

fmt

RSQRT fmt

00001000

POOL32FXf

111011

6

5

5

1

1

8

6

Format:

RSQRT.fmt 

Reciprocal Square Root Approximation

RSQRT.S   ft, fs

microMIPS

Reciprocal Square Root Approximation

RSQRT.D   ft, fs

microMIPS

Reciprocal Square Root Approximation

Purpose:

Reciprocal Square Root Approximation

To approximate the reciprocal of the square root of an FP value (quickly).

Description:

 FPR[ft] = 1.0 / sqrt(FPR[fs])

The reciprocal of the positive square root of the value in FPR fs is approximated and placed into FPR ft. The operand and result are values in format fmt.

The numeric accuracy of this operation is implementation dependent; it does not meet the accuracy specified by the

IEEE 754 Floating Point standard. The computed result differs from both the exact result and the IEEE-mandated representation of the exact result by no more than two units in the least-significant place (ULP).

The effect of the current FCSR rounding mode on the result is implementation dependent.

Restrictions:

The fields fs and ft must specify FPRs valid for operands of type fmt. If the fields are not valid, the result is UNPREDICTABLE.

The operand must be a value in format fmt; if it is not, the result is UNPREDICTABLE and the value of the operand

FPR becomes UNPREDICTABLE.

Availability and Compatibility:

RSQRT.S and RSQRT.D: Required in all versions of MIPS64 since MIPS64 Release 1. Not available in MIPS32

Release 1. Required in MIPS32 Release 2 and all subsequent versions of MIPS32. When required, required whenever

FPU is present, whether a 32-bit or 64-bit FPU, whether in 32-bit or 64-bit FP Register Mode (FIRF64=0 or 1,

StatusFR=0 or 1).

Operation:

StoreFPR(ft, fmt, 1.0 / SquareRoot(valueFPR(fs, fmt)))

Exceptions:

Coprocessor Unusable, Reserved Instruction

Floating Point Exceptions:

Inexact, Division-by-zero, Unimplemented Operation, Invalid Operation, Overflow, Underflow