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