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 _mm_sub_epi8( a.value, b.value );
70 inline sse_int16_t
operator-(
const sse_int16_t& a,
const sse_int16_t& b )
72 return _mm_sub_epi16( a.value, b.value );
88 inline sse_int64_t
operator-(
const sse_int32_t& a,
const sse_int32_t& b )
90 return _mm512_sub_epi32( a.value, b.value );
93 inline sse_int32_t
operator-(
const sse_int32_t& a,
const sse_int32_t& b )
95 return _mm_sub_epi32( a.value, b.value );
111 inline sse_int64_t
operator-(
const sse_int64_t& a,
const sse_int64_t& b )
113 return _mm_sub_epi64( a.value, b.value );
129 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
131 return _mm512_sub_ps( a.value, b.value );
134 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
136 return _mm256_sub_ps( a.value, b.value );
139 inline sse_float_t
operator-(
const sse_float_t& a,
const sse_float_t& b )
141 return _mm_sub_ps( a.value, b.value );
157 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
159 return _mm512_sub_pd( a.value, b.value );
162 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
164 return _mm256_sub_pd( a.value, b.value );
166 #elif BLAZE_SSE2_MODE
167 inline sse_double_t
operator-(
const sse_double_t& a,
const sse_double_t& b )
169 return _mm_sub_pd( a.value, b.value );