# Floating Point Dot Product Intrinsics

These Intel® Streaming SIMD Extensions (Intel® SSE4) intrinsics enable floating point single-precision and double-precision dot products. The prototypes for these intrinsics are in the smmintrin.h file.

To use these intrinsics, include the immintrin.h file as follows:

    #include <immintrin.h>

Intrinsic | Operation | Corresponding Intel® SSE4 Instruction
--- | --- | ---
_mm_dp_pd | Double-precision dot product | `DPPD`
_mm_dp_ps | Single-precision dot product | `DPPS`

## _mm_dp_pd

__m128d _mm_dp_pd( __m128d a, __m128d b, const int mask);

Calculates the dot product of double-precision packed values with mask-defined summing and zeroing of the parts of the result.

## _mm_dp_ps

__m128 _mm_dp_ps( __m128 a, __m128 b, const int mask);

Calculates the dot product of single-precision packed values with mask-defined summing and zeroing of the parts of the result.

Parent topic: Vectorizing Compiler and Media Accelerators