35 #ifndef _BLAZE_MATH_INTRINSICS_ADDITION_H_
36 #define _BLAZE_MATH_INTRINSICS_ADDITION_H_
65 inline sse_int8_t
operator+(
const sse_int8_t& a,
const sse_int8_t& b )
67 return _mm256_add_epi8( a.value, b.value );
70 inline sse_int8_t
operator+(
const sse_int8_t& a,
const sse_int8_t& b )
72 return _mm_add_epi8( a.value, b.value );
88 inline sse_int16_t
operator+(
const sse_int16_t& a,
const sse_int16_t& b )
90 return _mm256_add_epi16( a.value, b.value );
93 inline sse_int16_t
operator+(
const sse_int16_t& a,
const sse_int16_t& b )
95 return _mm_add_epi16( a.value, b.value );
111 inline sse_int32_t
operator+(
const sse_int32_t& a,
const sse_int32_t& b )
113 return _mm512_add_epi32( a.value, b.value );
115 #elif BLAZE_AVX2_MODE
116 inline sse_int32_t
operator+(
const sse_int32_t& a,
const sse_int32_t& b )
118 return _mm256_add_epi32( a.value, b.value );
120 #elif BLAZE_SSE2_MODE
121 inline sse_int32_t
operator+(
const sse_int32_t& a,
const sse_int32_t& b )
123 return _mm_add_epi32( a.value, b.value );
139 inline sse_int64_t
operator+(
const sse_int64_t& a,
const sse_int64_t& b )
141 return _mm512_add_epi64( a.value, b.value );
143 #elif BLAZE_AVX2_MODE
144 inline sse_int64_t
operator+(
const sse_int64_t& a,
const sse_int64_t& b )
146 return _mm256_add_epi64( a.value, b.value );
148 #elif BLAZE_SSE2_MODE
149 inline sse_int64_t
operator+(
const sse_int64_t& a,
const sse_int64_t& b )
151 return _mm_add_epi64( a.value, b.value );
167 inline sse_float_t
operator+(
const sse_float_t& a,
const sse_float_t& b )
169 return _mm512_add_ps( a.value, b.value );
172 inline sse_float_t
operator+(
const sse_float_t& a,
const sse_float_t& b )
174 return _mm256_add_ps( a.value, b.value );
177 inline sse_float_t
operator+(
const sse_float_t& a,
const sse_float_t& b )
179 return _mm_add_ps( a.value, b.value );
195 inline sse_double_t
operator+(
const sse_double_t& a,
const sse_double_t& b )
197 return _mm512_add_pd( a.value, b.value );
200 inline sse_double_t
operator+(
const sse_double_t& a,
const sse_double_t& b )
202 return _mm256_add_pd( a.value, b.value );
204 #elif BLAZE_SSE2_MODE
205 inline sse_double_t
operator+(
const sse_double_t& a,
const sse_double_t& b )
207 return _mm_add_pd( a.value, b.value );
223 inline sse_cfloat_t
operator+(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
225 return _mm512_add_ps( a.value, b.value );
228 inline sse_cfloat_t
operator+(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
230 return _mm256_add_ps( a.value, b.value );
233 inline sse_cfloat_t
operator+(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
235 return _mm_add_ps( a.value, b.value );
251 inline sse_cdouble_t
operator+(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
253 return _mm512_add_pd( a.value, b.value );
256 inline sse_cdouble_t
operator+(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
258 return _mm256_add_pd( a.value, b.value );
260 #elif BLAZE_SSE2_MODE
261 inline sse_cdouble_t
operator+(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
263 return _mm_add_pd( a.value, b.value );
const DenseIterator< Type > operator+(const DenseIterator< Type > &it, ptrdiff_t inc)
Addition between a DenseIterator and an integral value.
Definition: DenseIterator.h:556
Header file for the basic intrinsic types.
System settings for the SSE mode.