Logical Operations (Floating-Point SSE2 Intrinsics)

Microsoft Specific

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

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

The emmintrin.h header file contains the declarations for the SSE2 instructions intrinsics.

__m128d _mm_andnot_pd (__m128d a, __m128d b);

ANDNPD

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

r0 := (~a0) & b0 
r1 := (~a1) & b1 

__m128d _mm_and_pd (__m128d a, __m128d b);

ANDPD 

Computes the bitwise AND of the two double-precision, floating-point values of a and b.

r0 := a0 & b0
r1 := a1 & b1

__m128d _mm_or_pd (__m128d a, __m128d b);

ORPD

Computes the bitwise OR of the two double-precision, floating-point values of a and b.

r0 := a0 | b0
r1 := a1 | b1

__m128d _mm_xor_pd (__m128d a, __m128d b);

XORPD

Computes the bitwise XOR of the two double-precision, floating-point values of a and b .

r0 := a0 ^ b0
r1 := a1 ^ b1

See Also

Reference

Floating-Point Intrinsics Using Streaming SIMD Extensions 2 Instructions