Intel 64 and IA-32 Architectures Software Developers Manual Volume 2B, Instruction Set Reference, N-Z
4-270 Vol. 2B
INSTRUCTION SET REFERENCE, N-Z
RSQRTSS—Compute Reciprocal of Square Root of Scalar Single-
Precision Floating-Point Value
Description
Computes an approximate reciprocal of the square root of the low single-precision
floating-point value in the source operand (second operand) stores the single-preci-
sion floating-point result in the destination operand. The source operand can be an
XMM register or a 32-bit memory location. The destination operand is an XMM
register. The three high-order doublewords of the destination operand remain
unchanged. See Figure 10-6 in the Intel
®
64 and IA-32 Architectures Software
Developer’s Manual, Volume 1, for an illustration of a scalar single-precision floating-
point operation.
The relative error for this approximation is:
|Relative Error| ≤ 1.5
∗ 2
−12
The RSQRTSS instruction is not affected by the rounding control bits in the MXCSR
register. When a source value is a 0.0, an ∞ of the sign of the source value is
returned. A denormal source value is treated as a 0.0 (of the same sign). When a
source value is a negative value (other than −0.0), a floating-point indefinite is
returned. When a source value is an SNaN or QNaN, the SNaN is converted to a QNaN
or the source QNaN is returned.
In 64-bit mode, using a REX prefix in the form of REX.R permits this instruction to
access additional registers (XMM8-XMM15).
Operation
DEST[31:0] ← APPROXIMATE(1.0/SQRT(SRC[31:0]));
(* DEST[127:32] unchanged *)
Intel C/C++ Compiler Intrinsic Equivalent
RSQRTSS __m128 _mm_rsqrt_ss(__m128 a)
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
F3 0F 52
/r
RSQRTSS xmm1,
xmm2/m32
Valid Valid Computes the approximate reciprocal
of the square root of the low single-
precision floating-point value in
xmm2/m32 and stores the results in
xmm1.