35 #ifndef _BLAZE_MATH_INTRINSICS_SUBTRACTION_H_
36 #define _BLAZE_MATH_INTRINSICS_SUBTRACTION_H_
65 inline sse_int8_t
operator-(
const sse_int8_t& a,
const sse_int8_t& b )
67 return _mm256_sub_epi8( a.value, b.value );
70 inline sse_int8_t
operator-(
const sse_int8_t& a,
const sse_int8_t& b )
72 return _mm_sub_epi8( a.value, b.value );
88 inline sse_int16_t
operator-(
const sse_int16_t& a,
const sse_int16_t& b )
90 return _mm256_sub_epi16( a.value, b.value );
93 inline sse_int16_t
operator-(
const sse_int16_t& a,
const sse_int16_t& b )
95 return _mm_sub_epi16( a.value, b.value );
111 inline sse_int64_t
operator-(
const sse_int32_t& a,
const sse_int32_t& b )
113 return _mm512_sub_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_sub_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_sub_epi32( a.value, b.value );
139 inline sse_int64_t
operator-(
const sse_int64_t& a,
const sse_int64_t& b )
141 return _mm256_sub_epi64( a.value, b.value );
143 #elif BLAZE_SSE2_MODE
144 inline sse_int64_t
operator-(
const sse_int64_t& a,
const sse_int64_t& b )
146 return _mm_sub_epi64( a.value, b.value );
162 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
164 return _mm512_sub_ps( a.value, b.value );
167 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
169 return _mm256_sub_ps( a.value, b.value );
172 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
174 return _mm_sub_ps( a.value, b.value );
190 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
192 return _mm512_sub_pd( a.value, b.value );
195 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
197 return _mm256_sub_pd( a.value, b.value );
199 #elif BLAZE_SSE2_MODE
200 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
202 return _mm_sub_pd( a.value, b.value );
218 inline sse_cfloat_t
operator-(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
220 return _mm512_sub_ps( a.value, b.value );
223 inline sse_cfloat_t
operator-(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
225 return _mm256_sub_ps( a.value, b.value );
228 inline sse_cfloat_t
operator-(
const sse_cfloat_t& a,
const sse_cfloat_t& b )
230 return _mm_sub_ps( a.value, b.value );
246 inline sse_cdouble_t
operator-(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
248 return _mm512_sub_pd( a.value, b.value );
251 inline sse_cdouble_t
operator-(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
253 return _mm256_sub_pd( a.value, b.value );
255 #elif BLAZE_SSE2_MODE
256 inline sse_cdouble_t
operator-(
const sse_cdouble_t& a,
const sse_cdouble_t& b )
258 return _mm_sub_pd( a.value, b.value );
Header file for the basic intrinsic types.
const DenseIterator< Type > operator-(const DenseIterator< Type > &it, ptrdiff_t inc)
Subtraction between a DenseIterator and an integral value.
Definition: DenseIterator.h:585
System settings for the SSE mode.