35 #ifndef _BLAZE_MATH_SIMD_MAX_H_ 36 #define _BLAZE_MATH_SIMD_MAX_H_ 67 #if BLAZE_AVX512BW_MODE 69 return _mm512_max_epi8( (~a).value, (~b).value );
73 return _mm256_max_epi8( (~a).value, (~b).value );
77 return _mm_max_epi8( (~a).value, (~b).value );
96 #if BLAZE_AVX512BW_MODE 98 return _mm512_max_epu8( (~a).value, (~b).value );
100 #elif BLAZE_AVX2_MODE 102 return _mm256_max_epu8( (~a).value, (~b).value );
104 #elif BLAZE_SSE2_MODE 106 return _mm_max_epu8( (~a).value, (~b).value );
133 #if BLAZE_AVX512BW_MODE 135 return _mm512_max_epi16( (~a).value, (~b).value );
137 #elif BLAZE_AVX2_MODE 139 return _mm256_max_epi16( (~a).value, (~b).value );
141 #elif BLAZE_SSE2_MODE 143 return _mm_max_epi16( (~a).value, (~b).value );
162 #if BLAZE_AVX512BW_MODE 164 return _mm512_max_epu16( (~a).value, (~b).value );
166 #elif BLAZE_AVX2_MODE 168 return _mm256_max_epu16( (~a).value, (~b).value );
170 #elif BLAZE_SSE4_MODE 172 return _mm_max_epu16( (~a).value, (~b).value );
199 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 201 return _mm512_max_epi32( (~a).value, (~b).value );
203 #elif BLAZE_AVX2_MODE 205 return _mm256_max_epi32( (~a).value, (~b).value );
207 #elif BLAZE_SSE4_MODE 209 return _mm_max_epi32( (~a).value, (~b).value );
228 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 230 return _mm512_max_epu32( (~a).value, (~b).value );
232 #elif BLAZE_AVX2_MODE 234 return _mm256_max_epu32( (~a).value, (~b).value );
236 #elif BLAZE_SSE4_MODE 238 return _mm_max_epu32( (~a).value, (~b).value );
264 template<
typename T1
267 max(
const SIMDf32<T1>& a,
const SIMDf32<T2>& b ) noexcept
268 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 270 return _mm512_max_ps( (~a).
eval().value, (~b).
eval().value );
274 return _mm256_max_ps( (~a).
eval().value, (~b).
eval().value );
278 return _mm_max_ps( (~a).
eval().value, (~b).
eval().value );
304 template<
typename T1
307 max(
const SIMDf64<T1>& a,
const SIMDf64<T2>& b ) noexcept
308 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 310 return _mm512_max_pd( (~a).
eval().value, (~b).
eval().value );
314 return _mm256_max_pd( (~a).
eval().value, (~b).
eval().value );
316 #elif BLAZE_SSE2_MODE 318 return _mm_max_pd( (~a).
eval().value, (~b).
eval().value );
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
decltype(auto) eval(const DenseMatrix< MT, SO > &dm)
Forces the evaluation of the given dense matrix expression dm.
Definition: DMatEvalExpr.h:786
decltype(auto) max(const DenseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Computes the componentwise maximum of the dense matrices lhs and rhs.
Definition: DMatDMatMapExpr.h:1179
Header file for the basic SIMD types.
System settings for the SSE mode.
System settings for the inline keywords.