35#ifndef _BLAZE_MATH_SIMD_MAX_H_
36#define _BLAZE_MATH_SIMD_MAX_H_
69#if BLAZE_AVX512BW_MODE
71 return _mm512_max_epi8( (*a).value, (*b).value );
75 return _mm256_max_epi8( (*a).value, (*b).value );
79 return _mm_max_epi8( (*a).value, (*b).value );
98#if BLAZE_AVX512BW_MODE
100 return _mm512_max_epu8( (*a).value, (*b).value );
104 return _mm256_max_epu8( (*a).value, (*b).value );
108 return _mm_max_epu8( (*a).value, (*b).value );
135#if BLAZE_AVX512BW_MODE
137 return _mm512_max_epi16( (*a).value, (*b).value );
141 return _mm256_max_epi16( (*a).value, (*b).value );
145 return _mm_max_epi16( (*a).value, (*b).value );
164#if BLAZE_AVX512BW_MODE
166 return _mm512_max_epu16( (*a).value, (*b).value );
170 return _mm256_max_epu16( (*a).value, (*b).value );
174 return _mm_max_epu16( (*a).value, (*b).value );
201#if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
203 return _mm512_max_epi32( (*a).value, (*b).value );
207 return _mm256_max_epi32( (*a).value, (*b).value );
211 return _mm_max_epi32( (*a).value, (*b).value );
230#if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
232 return _mm512_max_epu32( (*a).value, (*b).value );
236 return _mm256_max_epu32( (*a).value, (*b).value );
240 return _mm_max_epu32( (*a).value, (*b).value );
269 max(
const SIMDf32<T1>& a,
const SIMDf32<T2>& b )
noexcept
270#if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
272 return _mm512_max_ps( (*a).eval().value, (*b).eval().value );
276 return _mm256_max_ps( (*a).eval().value, (*b).eval().value );
280 return _mm_max_ps( (*a).eval().value, (*b).eval().value );
309 max(
const SIMDf64<T1>& a,
const SIMDf64<T2>& b )
noexcept
310#if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
312 return _mm512_max_pd( (*a).eval().value, (*b).eval().value );
316 return _mm256_max_pd( (*a).eval().value, (*b).eval().value );
320 return _mm_max_pd( (*a).eval().value, (*b).eval().value );
Header file for the basic SIMD types.
Header file for the IntegralConstant class template.
Header file for the IsSIMDPack type trait.
SIMD type for 64-bit double precision floating point data values.
SIMD type for 32-bit single precision floating point data values.
SIMD type for 16-bit signed integral data values.
SIMD type for 32-bit signed integral data values.
SIMD type for 8-bit signed integral data values.
SIMD type for 16-bit unsigned integral data values.
SIMD type for 32-bit unsigned integral data values.
SIMD type for 8-bit unsigned integral data values.
constexpr decltype(auto) max(T1 &&a, T2 &&b, T3 &&c, Ts &&... args)
Maximum function for at least four values/objects.
Definition: Max.h:126
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
System settings for the inline keywords.
System settings for the SSE mode.