Intel 64 and IA-32 Architectures Software Developers Manual Volume 2B, Instruction Set Reference, N-Z

4-236 Vol. 2B
INSTRUCTION SET REFERENCE, N-Z
RCPSS—Compute Reciprocal of Scalar Single-Precision Floating-Point
Values
Description
Computes of an approximate reciprocal of the low single-precision floating-point
value in the source operand (second operand) and stores the single-precision
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 oper-
ation.
The relative error for this approximation is:
|Relative Error| 1.5 2
12
The RCPSS 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). Tiny results
are always flushed to 0.0, with the sign of the operand. (Input values greater than or
equal to |1.11111111110100000000000B2
125
| are guaranteed to not produce tiny
results; input values less than or equal to |1.00000000000110000000001B*2
126
|
are guaranteed to produce tiny results, which are in turn flushed to 0.0; and input
values in between this range may or may not produce tiny results, depending on the
implementation.) 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] APPROX (1.0/(SRC[31:0]));
(* DEST[127:32] unchanged *)
Intel C/C++ Compiler Intrinsic Equivalent
RCPSS __m128 _mm_rcp_ss(__m128 a)
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
F3 0F
53 /r
RCPSS xmm1,
xmm2/m32
Valid Valid Computes the approximate reciprocal of
the scalar single-precision floating-point
value in xmm2/m32 and stores the
result in xmm1.