Arithmetic Operations (Floating-Point SSE2 Intrinsics)

Microsoft Specific

The intrinsics listed in the following table are followed by a description of each intrinsic.

SSE intrinsics use the __m128, __m128i, and __m128d data types, which are not supported on Itanium Processor Family (IPF) processors. Any SSE intrinsics that use the __m64 data type are not supported on x64 processors.

The header file xmmintrin.h contains the declarations for the SSE intrinsics.

Packed Arithmetic Intrinsics

Intrinsic

Instruction

Operation

R0

R1

R2

R3

_mm_add_ss

ADDSS

Adds

a0 [op] b0
a1
a2
a3

_mm_add_ps

ADDPS

Adds

a0 [op] b0
a1 [op] b1
a2 [op] b2
a3 [op] b3

_mm_sub_ss

SUBSS

Subtracts

a0 [op] b0
a1
a2
a3

_mm_sub_ps

SUBPS

Subtracts

a0 [op] b0
a1 [op] b1
a2 [op] b2
a3 [op] b3

_mm_mul_ss

MULSS

Multiplies

a0 [op] b0
a1
a2
a3

_mm_mul_ps

MULPS

Multiplies

a0 [op] b0
a1 [op] b1
a2 [op] b2
a3 [op] b3

_mm_div_ss

DIVSS

Divides

a0 [op] b0
a1
a2
a3

_mm_div_ps

DIVPS

Divides

a0 [op] b0
a1 [op] b1
a2 [op] b2
a3 [op] b3

_mm_sqrt_ss

SQRTSS

Computes squared root

[op] a0
a1
a2
a3

_mm_sqrt_ps

SQRTPS

Computes squared root

[op] a0
[op] b1
[op] b2
[op] b3

_mm_rcp_ss

RCPSS

Computes reciprocal

[op] a0
a1
a2
a3

_mm_rcp_ps

RCPPS

Computes reciprocal

[op] a0
[op] b1
[op] b2
[op] b3

_mm_rsqrt_ss

RSQRTSS

Computes reciprocal square root

[op] a0
a1
a2
a3

_mm_rsqrt_ps

RSQRTPS

Computes reciprocal squared root

[op] a0
[op] b1
[op] b2
[op] b3

_mm_min_ss

MINSS

Computes minimum

[op]( a0,b0)
a1
a2
a3

_mm_min_ps

MINPS

Computes minimum

[op]( a0,b0)
[op] (a1, b1)
[op] (a2, b2)
[op] (a3, b3)

_mm_max_ss

MAXSS

Computes maximum

[op]( a0,b0)
a1
a2
a3

_mm_max_ps

MAXPS

Computes maximum

[op]( a0,b0)
[op] (a1, b1)
[op] (a2, b2)
[op] (a3, b3)

For an explanation of the syntax used in code samples in this topic, see Floating-Point Intrinsics Using Streaming SIMD Extensions.

See Also

Concepts

Floating-Point Intrinsics Using Streaming SIMD Extensions