Intel 64 and IA-32 Architectures Software Developers Manual Volume 2B, Instruction Set Reference, N-Z
Vol. 2B 4-233
INSTRUCTION SET REFERENCE, N-Z
RCPPS—Compute Reciprocals of Packed Single-Precision Floating-
Point Values
Description
Performs a SIMD computation of the approximate reciprocals of the four packed
single-precision floating-point values in the source operand (second operand) stores
the packed single-precision floating-point results in the destination operand. The
source operand can be an XMM register or a 128-bit memory location. The destina-
tion operand is an XMM register. See Figure 10-5 in the Intel
®
64 and IA-32 Architec-
tures Software Developer’s Manual, Volume 1, for an illustration of a SIMD single-
precision floating-point operation.
The relative error for this approximation is:
|Relative Error| ≤ 1.5
∗ 2
−12
The RCPPS 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.11111111110100000000000B∗2
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] ← APPROXIMATE(1.0/(SRC[31:0]));
DEST[63:32] ← APPROXIMATE(1.0/(SRC[63:32]));
DEST[95:64] ← APPROXIMATE(1.0/(SRC[95:64]));
DEST[127:96] ← APPROXIMATE(1.0/(SRC[127:96]));
Intel C/C++ Compiler Intrinsic Equivalent
RCCPS __m128 _mm_rcp_ps(__m128 a)
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
0F 53 /r RCPPS xmm1,
xmm2/m128
Valid Valid Computes the approximate reciprocals
of the packed single-precision floating-
point values in xmm2/m128 and
stores the results in xmm1.