22 #ifndef _BLAZE_MATH_INTRINSICS_ADDITION_H_
23 #define _BLAZE_MATH_INTRINSICS_ADDITION_H_
52 inline sse_int8_t
operator+(
const sse_int8_t& a,
const sse_int8_t& b )
54 return _mm256_add_epi8( a.value, b.value );
57 inline sse_int8_t
operator+(
const sse_int8_t& a,
const sse_int8_t& b )
59 return _mm_add_epi8( a.value, b.value );
75 inline sse_int16_t
operator+(
const sse_int16_t& a,
const sse_int16_t& b )
77 return _mm256_add_epi16( a.value, b.value );
80 inline sse_int16_t
operator+(
const sse_int16_t& a,
const sse_int16_t& b )
82 return _mm_add_epi16( a.value, b.value );
98 inline sse_int32_t
operator+(
const sse_int32_t& a,
const sse_int32_t& b )
100 return _mm512_add_epi32( a.value, b.value );
102 #elif BLAZE_AVX2_MODE
103 inline sse_int32_t
operator+(
const sse_int32_t& a,
const sse_int32_t& b )
105 return _mm256_add_epi32( a.value, b.value );
107 #elif BLAZE_SSE2_MODE
108 inline sse_int32_t
operator+(
const sse_int32_t& a,
const sse_int32_t& b )
110 return _mm_add_epi32( a.value, b.value );
126 inline sse_int64_t
operator+(
const sse_int64_t& a,
const sse_int64_t& b )
128 return _mm512_add_epi64( a.value, b.value );
130 #elif BLAZE_AVX2_MODE
131 inline sse_int64_t
operator+(
const sse_int64_t& a,
const sse_int64_t& b )
133 return _mm256_add_epi64( a.value, b.value );
135 #elif BLAZE_SSE2_MODE
136 inline sse_int64_t
operator+(
const sse_int64_t& a,
const sse_int64_t& b )
138 return _mm_add_epi64( a.value, b.value );
154 inline sse_float_t
operator+(
const sse_float_t& a,
const sse_float_t& b )
156 return _mm512_add_ps( a.value, b.value );
159 inline sse_float_t
operator+(
const sse_float_t& a,
const sse_float_t& b )
161 return _mm256_add_ps( a.value, b.value );
164 inline sse_float_t
operator+(
const sse_float_t& a,
const sse_float_t& b )
166 return _mm_add_ps( a.value, b.value );
182 inline sse_double_t
operator+(
const sse_double_t& a,
const sse_double_t& b )
184 return _mm512_add_pd( a.value, b.value );
187 inline sse_double_t
operator+(
const sse_double_t& a,
const sse_double_t& b )
189 return _mm256_add_pd( a.value, b.value );
191 #elif BLAZE_SSE2_MODE
192 inline sse_double_t
operator+(
const sse_double_t& a,
const sse_double_t& b )
194 return _mm_add_pd( a.value, b.value );
210 inline sse_cfloat_t
operator+(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
212 return _mm256_add_ps( a.value, b.value );
215 inline sse_cfloat_t
operator+(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
217 return _mm_add_ps( a.value, b.value );
233 inline sse_cdouble_t
operator+(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
235 return _mm256_add_pd( a.value, b.value );
237 #elif BLAZE_SSE2_MODE
238 inline sse_cdouble_t
operator+(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
240 return _mm_add_pd( a.value, b.value );