22 #ifndef _BLAZE_MATH_INTRINSICS_SUBTRACTION_H_
23 #define _BLAZE_MATH_INTRINSICS_SUBTRACTION_H_
52 inline sse_int8_t
operator-(
const sse_int8_t& a,
const sse_int8_t& b )
54 return _mm256_sub_epi8( a.value, b.value );
57 inline sse_int8_t
operator-(
const sse_int8_t& a,
const sse_int8_t& b )
59 return _mm_sub_epi8( a.value, b.value );
75 inline sse_int16_t
operator-(
const sse_int16_t& a,
const sse_int16_t& b )
77 return _mm256_sub_epi16( a.value, b.value );
80 inline sse_int16_t
operator-(
const sse_int16_t& a,
const sse_int16_t& b )
82 return _mm_sub_epi16( a.value, b.value );
98 inline sse_int64_t
operator-(
const sse_int32_t& a,
const sse_int32_t& b )
100 return _mm512_sub_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_sub_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_sub_epi32( a.value, b.value );
126 inline sse_int64_t
operator-(
const sse_int64_t& a,
const sse_int64_t& b )
128 return _mm256_sub_epi64( a.value, b.value );
130 #elif BLAZE_SSE2_MODE
131 inline sse_int64_t
operator-(
const sse_int64_t& a,
const sse_int64_t& b )
133 return _mm_sub_epi64( a.value, b.value );
149 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
151 return _mm512_sub_ps( a.value, b.value );
154 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
156 return _mm256_sub_ps( a.value, b.value );
159 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
161 return _mm_sub_ps( a.value, b.value );
177 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
179 return _mm512_sub_pd( a.value, b.value );
182 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
184 return _mm256_sub_pd( a.value, b.value );
186 #elif BLAZE_SSE2_MODE
187 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
189 return _mm_sub_pd( a.value, b.value );
205 inline sse_cfloat_t
operator-(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
207 return _mm256_sub_ps( a.value, b.value );
210 inline sse_cfloat_t
operator-(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
212 return _mm_sub_ps( a.value, b.value );
228 inline sse_cdouble_t
operator-(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
230 return _mm256_sub_pd( a.value, b.value );
232 #elif BLAZE_SSE2_MODE
233 inline sse_cdouble_t
operator-(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
235 return _mm_sub_pd( a.value, b.value );