Floating-point Logical Operations for Streaming SIMD Extensions 2

The prototypes for Streaming SIMD Extensions 2 (SSE2) intrinsics are in the emmintrin.h header file.

For detailed information about an intrinsic, click on that intrinsic name in the following table.

The results of each intrinsic operation are placed in registers. The information about what is placed in each register appears in the tables below, in the detailed explanation of each intrinsic. R0 and R1 represent the registers in which results are placed.  

Intrinsic
Name
Operation Corresponding SSE2
Instruction
_mm_and_pd Computes AND ANDPD
_mm_andnot_pd Computes AND and NOT ANDNPD
_mm_or_pd Computes OR ORPD
_mm_xor_pd Computes XOR XORPD

 

__m128d _mm_and_pd(__m128d a, __m128d b)

Computes the bitwise AND of the two DP FP values of a and b.

R0 R1
a0 & b0 a1 & b1

 

__m128d _mm_andnot_pd(__m128d a, __m128d b)

Computes the bitwise AND of the 128-bit value in b and the bitwise NOT of the 128-bit value in a.

R0 R1
(~a0) & b0 (~a1) & b1

 

__m128d _mm_or_pd(__m128d a, __m128d b)

Computes the bitwise OR of the two DP FP values of a and b.

R0 R1
a0 | b0 a1 | b1

 

__m128d _mm_xor_pd(__m128d a, __m128d b)

Computes the bitwise XOR of the two DP FP values of a and b.

R0 R1
a0 ^ b0 a1 ^ b1