_mm_mask_reduce_max_epu8
Classification
AVX-512, Special Math Functions, CPUID Test: AVX512BW
Header File
immintrin.h
Synopsis
 _mm_mask_reduce_max_epu8(__mmask16 k, __m128i a);
Description
Reduce the packed unsigned 8-bit integers in "a" by maximum using mask "k". Returns the maximum of all active elements in "a".
Operation
DEFINE REDUCE_MAX(src, len) {
	IF len == 2
		RETURN (src[7:0] > src[15:8] ? src[7:0] : src[15:8])
	FI
	len := len / 2
	FOR j:= 0 to (len-1)
		i := j*8
		src[i+7:i] := (src[i+7:i] > src[i+8*len+7:i+8*len] ? src[i+7:i] : src[i+8*len+7:i+8*len])
	ENDFOR
	RETURN REDUCE_MAX(src[8*len-1:0], len)
}
tmp := a
FOR j := 0 to 15
	i := j*8
	IF k[j]
		tmp[i+7:i] := a[i+7:i]
	ELSE
		tmp[i+7:i] := 0
	FI
ENDFOR
dst[7:0] := REDUCE_MAX(tmp, 16)