35#ifndef _BLAZE_MATH_SIMD_MIN_H_
36#define _BLAZE_MATH_SIMD_MIN_H_
69#if BLAZE_AVX512BW_MODE
71 return _mm512_min_epi8( (*a).value, (*b).value );
75 return _mm256_min_epi8( (*a).value, (*b).value );
79 return _mm_min_epi8( (*a).value, (*b).value );
98#if BLAZE_AVX512BW_MODE
100 return _mm512_min_epu8( (*a).value, (*b).value );
104 return _mm256_min_epu8( (*a).value, (*b).value );
108 return _mm_min_epu8( (*a).value, (*b).value );
135#if BLAZE_AVX512BW_MODE
137 return _mm512_min_epi16( (*a).value, (*b).value );
141 return _mm256_min_epi16( (*a).value, (*b).value );
145 return _mm_min_epi16( (*a).value, (*b).value );
164#if BLAZE_AVX512BW_MODE
166 return _mm512_min_epu16( (*a).value, (*b).value );
170 return _mm256_min_epu16( (*a).value, (*b).value );
174 return _mm_min_epu16( (*a).value, (*b).value );
201#if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
203 return _mm512_min_epi32( (*a).value, (*b).value );
207 return _mm256_min_epi32( (*a).value, (*b).value );
211 return _mm_min_epi32( (*a).value, (*b).value );
230#if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
232 return _mm512_min_epu32( (*a).value, (*b).value );
236 return _mm256_min_epu32( (*a).value, (*b).value );
240 return _mm_min_epu32( (*a).value, (*b).value );
269 min(
const SIMDf32<T1>& a,
const SIMDf32<T2>& b )
noexcept
270#if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
272 return _mm512_min_ps( (*a).eval().value, (*b).eval().value );
276 return _mm256_min_ps( (*a).eval().value, (*b).eval().value );
280 return _mm_min_ps( (*a).eval().value, (*b).eval().value );
309 min(
const SIMDf64<T1>& a,
const SIMDf64<T2>& b )
noexcept
310#if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
312 return _mm512_min_pd( (*a).eval().value, (*b).eval().value );
316 return _mm256_min_pd( (*a).eval().value, (*b).eval().value );
320 return _mm_min_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) min(T1 &&a, T2 &&b, T3 &&c, Ts &&... args)
Minimum function for at least four values/objects.
Definition: Min.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.