_mm512_mask_reduce_or_epi32
Classification
AVX-512, Logical, CPUID Test: AVX512F
Header File
Synopsis
_mm512_mask_reduce_or_epi32(__mmask16 k, __m512i a);
Description
Reduce the packed 32-bit integers in "a" by bitwise OR using mask "k". Returns the bitwise OR of all active elements in "a".
Operation
DEFINE REDUCE_OR(src, len) {
IF len == 2
RETURN src[31:0] OR src[63:32]
FI
len := len / 2
FOR j:= 0 to (len-1)
i := j*32
src[i+31:i] := src[i+31:i] OR src[i+32*len+31:i+32*len]
ENDFOR
RETURN REDUCE_OR(src[32*len-1:0], len)
}
tmp := a
FOR j := 0 to 16
i := j*32
IF k[j]
tmp[i+31:i] := a[i+31:i]
ELSE
tmp[i+31:i] := 0
FI
ENDFOR
dst[31:0] := REDUCE_OR(tmp, 16)