AVX-512-Logical-ZMM#
_mm512_andnot_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__m512d a, __m512d b
- Param ETypes:
FP64 a, FP64 b
__m512d _mm512_andnot_pd(__m512d a, __m512d b);
Intel Description
Compute the bitwise NOT of packed double-precision (64-bit) floating-point elements in “a” and then AND with “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
dst[i+63:i] := ((NOT a[i+63:i]) AND b[i+63:i])
ENDFOR
dst[MAX:512] := 0
_mm512_mask_andnot_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__m512d src, __mmask8 k, __m512d a, __m512d b
- Param ETypes:
FP64 src, MASK k, FP64 a, FP64 b
__m512d _mm512_mask_andnot_pd(__m512d src, __mmask8 k,
__m512d a, __m512d b)
Intel Description
Compute the bitwise NOT of packed double-precision (64-bit) floating-point elements in “a” and then AND with “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := ((NOT a[i+63:i]) AND b[i+63:i])
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_andnot_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__mmask8 k, __m512d a, __m512d b
- Param ETypes:
MASK k, FP64 a, FP64 b
__m512d _mm512_maskz_andnot_pd(__mmask8 k, __m512d a,
__m512d b)
Intel Description
Compute the bitwise NOT of packed double-precision (64-bit) floating-point elements in “a” and then AND with “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := ((NOT a[i+63:i]) AND b[i+63:i])
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_andnot_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__m512 a, __m512 b
- Param ETypes:
FP32 a, FP32 b
__m512 _mm512_andnot_ps(__m512 a, __m512 b);
Intel Description
Compute the bitwise NOT of packed single-precision (32-bit) floating-point elements in “a” and then AND with “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
dst[i+31:i] := ((NOT a[i+31:i]) AND b[i+31:i])
ENDFOR
dst[MAX:512] := 0
_mm512_mask_andnot_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__m512 src, __mmask16 k, __m512 a, __m512 b
- Param ETypes:
FP32 src, MASK k, FP32 a, FP32 b
__m512 _mm512_mask_andnot_ps(__m512 src, __mmask16 k,
__m512 a, __m512 b)
Intel Description
Compute the bitwise NOT of packed single-precision (32-bit) floating-point elements in “a” and then AND with “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := ((NOT a[i+31:i]) AND b[i+31:i])
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_andnot_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__mmask16 k, __m512 a, __m512 b
- Param ETypes:
MASK k, FP32 a, FP32 b
__m512 _mm512_maskz_andnot_ps(__mmask16 k, __m512 a,
__m512 b)
Intel Description
Compute the bitwise NOT of packed single-precision (32-bit) floating-point elements in “a” and then AND with “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := ((NOT a[i+31:i]) AND b[i+31:i])
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_and_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__m512d a, __m512d b
- Param ETypes:
FP64 a, FP64 b
__m512d _mm512_and_pd(__m512d a, __m512d b);
Intel Description
Compute the bitwise AND of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
dst[i+63:i] := (a[i+63:i] AND b[i+63:i])
ENDFOR
dst[MAX:512] := 0
_mm512_mask_and_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__m512d src, __mmask8 k, __m512d a, __m512d b
- Param ETypes:
FP64 src, MASK k, FP64 a, FP64 b
__m512d _mm512_mask_and_pd(__m512d src, __mmask8 k,
__m512d a, __m512d b)
Intel Description
Compute the bitwise AND of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := (a[i+63:i] AND b[i+63:i])
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_and_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__mmask8 k, __m512d a, __m512d b
- Param ETypes:
MASK k, FP64 a, FP64 b
__m512d _mm512_maskz_and_pd(__mmask8 k, __m512d a,
__m512d b)
Intel Description
Compute the bitwise AND of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := (a[i+63:i] AND b[i+63:i])
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_and_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__m512 a, __m512 b
- Param ETypes:
FP32 a, FP32 b
__m512 _mm512_and_ps(__m512 a, __m512 b);
Intel Description
Compute the bitwise AND of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
dst[i+31:i] := (a[i+31:i] AND b[i+31:i])
ENDFOR
dst[MAX:512] := 0
_mm512_mask_and_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__m512 src, __mmask16 k, __m512 a, __m512 b
- Param ETypes:
FP32 src, MASK k, FP32 a, FP32 b
__m512 _mm512_mask_and_ps(__m512 src, __mmask16 k, __m512 a,
__m512 b)
Intel Description
Compute the bitwise AND of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := (a[i+31:i] AND b[i+31:i])
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_and_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__mmask16 k, __m512 a, __m512 b
- Param ETypes:
MASK k, FP32 a, FP32 b
__m512 _mm512_maskz_and_ps(__mmask16 k, __m512 a, __m512 b);
Intel Description
Compute the bitwise AND of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := (a[i+31:i] AND b[i+31:i])
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_mask_or_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__m512d src, __mmask8 k, __m512d a, __m512d b
- Param ETypes:
FP64 src, MASK k, FP64 a, FP64 b
__m512d _mm512_mask_or_pd(__m512d src, __mmask8 k,
__m512d a, __m512d b)
Intel Description
Compute the bitwise OR of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] OR b[i+63:i]
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_or_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__mmask8 k, __m512d a, __m512d b
- Param ETypes:
MASK k, FP64 a, FP64 b
__m512d _mm512_maskz_or_pd(__mmask8 k, __m512d a,
__m512d b)
Intel Description
Compute the bitwise OR of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] OR b[i+63:i]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_or_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__m512d a, __m512d b
- Param ETypes:
FP64 a, FP64 b
__m512d _mm512_or_pd(__m512d a, __m512d b);
Intel Description
Compute the bitwise OR of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
dst[i+63:i] := a[i+63:i] OR b[i+63:i]
ENDFOR
dst[MAX:512] := 0
_mm512_mask_or_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__m512 src, __mmask16 k, __m512 a, __m512 b
- Param ETypes:
FP32 src, MASK k, FP32 a, FP32 b
__m512 _mm512_mask_or_ps(__m512 src, __mmask16 k, __m512 a,
__m512 b)
Intel Description
Compute the bitwise OR of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] OR b[i+31:i]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_or_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__mmask16 k, __m512 a, __m512 b
- Param ETypes:
MASK k, FP32 a, FP32 b
__m512 _mm512_maskz_or_ps(__mmask16 k, __m512 a, __m512 b);
Intel Description
Compute the bitwise OR of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] OR b[i+31:i]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_or_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__m512 a, __m512 b
- Param ETypes:
FP32 a, FP32 b
__m512 _mm512_or_ps(__m512 a, __m512 b);
Intel Description
Compute the bitwise OR of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
dst[i+31:i] := a[i+31:i] OR b[i+31:i]
ENDFOR
dst[MAX:512] := 0
_mm512_mask_xor_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__m512d src, __mmask8 k, __m512d a, __m512d b
- Param ETypes:
FP64 src, MASK k, FP64 a, FP64 b
__m512d _mm512_mask_xor_pd(__m512d src, __mmask8 k,
__m512d a, __m512d b)
Intel Description
Compute the bitwise XOR of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] XOR b[i+63:i]
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_xor_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__mmask8 k, __m512d a, __m512d b
- Param ETypes:
MASK k, FP64 a, FP64 b
__m512d _mm512_maskz_xor_pd(__mmask8 k, __m512d a,
__m512d b)
Intel Description
Compute the bitwise XOR of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] XOR b[i+63:i]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_xor_pd#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512d
- Param Types:
__m512d a, __m512d b
- Param ETypes:
FP64 a, FP64 b
__m512d _mm512_xor_pd(__m512d a, __m512d b);
Intel Description
Compute the bitwise XOR of packed double-precision (64-bit) floating-point elements in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
dst[i+63:i] := a[i+63:i] XOR b[i+63:i]
ENDFOR
dst[MAX:512] := 0
_mm512_mask_xor_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__m512 src, __mmask16 k, __m512 a, __m512 b
- Param ETypes:
FP32 src, MASK k, FP32 a, FP32 b
__m512 _mm512_mask_xor_ps(__m512 src, __mmask16 k, __m512 a,
__m512 b)
Intel Description
Compute the bitwise XOR of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] XOR b[i+31:i]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_xor_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__mmask16 k, __m512 a, __m512 b
- Param ETypes:
MASK k, FP32 a, FP32 b
__m512 _mm512_maskz_xor_ps(__mmask16 k, __m512 a, __m512 b);
Intel Description
Compute the bitwise XOR of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] XOR b[i+31:i]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_xor_ps#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512
- Param Types:
__m512 a, __m512 b
- Param ETypes:
FP32 a, FP32 b
__m512 _mm512_xor_ps(__m512 a, __m512 b);
Intel Description
Compute the bitwise XOR of packed single-precision (32-bit) floating-point elements in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
dst[i+31:i] := a[i+31:i] XOR b[i+31:i]
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_and_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask16 k, __m512i a, __m512i b
- Param ETypes:
MASK k, UI32 a, UI32 b
__m512i _mm512_maskz_and_epi32(__mmask16 k, __m512i a,
__m512i b)
Intel Description
Compute the bitwise AND of packed 32-bit integers in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] AND b[i+31:i]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_andnot_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask16 k, __m512i a, __m512i b
- Param ETypes:
MASK k, UI32 a, UI32 b
__m512i _mm512_maskz_andnot_epi32(__mmask16 k, __m512i a,
__m512i b)
Intel Description
Compute the bitwise NOT of packed 32-bit integers in “a” and then AND with “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := (NOT a[i+31:i]) AND b[i+31:i]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_andnot_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask8 k, __m512i a, __m512i b
- Param ETypes:
MASK k, UI64 a, UI64 b
__m512i _mm512_maskz_andnot_epi64(__mmask8 k, __m512i a,
__m512i b)
Intel Description
Compute the bitwise NOT of packed 64-bit integers in “a” and then AND with “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := (NOT a[i+63:i]) AND b[i+63:i]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_and_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask8 k, __m512i a, __m512i b
- Param ETypes:
MASK k, UI64 a, UI64 b
__m512i _mm512_maskz_and_epi64(__mmask8 k, __m512i a,
__m512i b)
Intel Description
Compute the bitwise AND of packed 64-bit integers in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] AND b[i+63:i]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_or_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask16 k, __m512i a, __m512i b
- Param ETypes:
MASK k, UI32 a, UI32 b
__m512i _mm512_maskz_or_epi32(__mmask16 k, __m512i a,
__m512i b)
Intel Description
Compute the bitwise OR of packed 32-bit integers in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] OR b[i+31:i]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_or_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask8 k, __m512i a, __m512i b
- Param ETypes:
MASK k, UI64 a, UI64 b
__m512i _mm512_maskz_or_epi64(__mmask8 k, __m512i a,
__m512i b)
Intel Description
Compute the bitwise OR of packed 64-bit integers in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] OR b[i+63:i]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_mask_ternarylogic_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __mmask16 k, __m512i b, __m512i c, int imm8
- Param ETypes:
UI32 a, MASK k, UI32 b, UI32 c, IMM imm8
__m512i _mm512_mask_ternarylogic_epi32(__m512i a,
__mmask16 k,
__m512i b, __m512i c,
int imm8)
Intel Description
Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in “imm8”. For each bit in each packed 32-bit integer, the corresponding bit from “a”, “b”, and “c” are used according to “imm8”, and the result is written to the corresponding bit in “dst” using writemask “k” at 32-bit granularity (32-bit elements are copied from “a” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
DEFINE TernaryOP(imm8, a, b, c) {
CASE imm8[7:0] OF
0: dst[0] := 0 // imm8[7:0] := 0
1: dst[0] := NOT (a OR b OR c) // imm8[7:0] := NOT (_MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C)
// ...
254: dst[0] := a OR b OR c // imm8[7:0] := _MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C
255: dst[0] := 1 // imm8[7:0] := 1
ESAC
}
imm8[7:0] = LogicExp(_MM_TERNLOG_A, _MM_TERNLOG_B, _MM_TERNLOG_C)
FOR j := 0 to 15
i := j*32
IF k[j]
FOR h := 0 to 31
dst[i+h] := TernaryOP(imm8[7:0], a[i+h], b[i+h], c[i+h])
ENDFOR
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_ternarylogic_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask16 k, __m512i a, __m512i b, __m512i c, int imm8
- Param ETypes:
MASK k, UI32 a, UI32 b, UI32 c, IMM imm8
__m512i _mm512_maskz_ternarylogic_epi32(
__mmask16 k, __m512i a, __m512i b, __m512i c, int imm8)
Intel Description
Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in “imm8”. For each bit in each packed 32-bit integer, the corresponding bit from “a”, “b”, and “c” are used according to “imm8”, and the result is written to the corresponding bit in “dst” using zeromask “k” at 32-bit granularity (32-bit elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
DEFINE TernaryOP(imm8, a, b, c) {
CASE imm8[7:0] OF
0: dst[0] := 0 // imm8[7:0] := 0
1: dst[0] := NOT (a OR b OR c) // imm8[7:0] := NOT (_MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C)
// ...
254: dst[0] := a OR b OR c // imm8[7:0] := _MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C
255: dst[0] := 1 // imm8[7:0] := 1
ESAC
}
imm8[7:0] = LogicExp(_MM_TERNLOG_A, _MM_TERNLOG_B, _MM_TERNLOG_C)
FOR j := 0 to 15
i := j*32
IF k[j]
FOR h := 0 to 31
dst[i+h] := TernaryOP(imm8[7:0], a[i+h], b[i+h], c[i+h])
ENDFOR
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_ternarylogic_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b, __m512i c, int imm8
- Param ETypes:
UI32 a, UI32 b, UI32 c, IMM imm8
__m512i _mm512_ternarylogic_epi32(__m512i a, __m512i b,
__m512i c, int imm8)
Intel Description
Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in “imm8”. For each bit in each packed 32-bit integer, the corresponding bit from “a”, “b”, and “c” are used according to “imm8”, and the result is written to the corresponding bit in “dst”.
Intel Implementation Psudeo-Code
DEFINE TernaryOP(imm8, a, b, c) {
CASE imm8[7:0] OF
0: dst[0] := 0 // imm8[7:0] := 0
1: dst[0] := NOT (a OR b OR c) // imm8[7:0] := NOT (_MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C)
// ...
254: dst[0] := a OR b OR c // imm8[7:0] := _MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C
255: dst[0] := 1 // imm8[7:0] := 1
ESAC
}
imm8[7:0] = LogicExp(_MM_TERNLOG_A, _MM_TERNLOG_B, _MM_TERNLOG_C)
FOR j := 0 to 15
i := j*32
FOR h := 0 to 31
dst[i+h] := TernaryOP(imm8[7:0], a[i+h], b[i+h], c[i+h])
ENDFOR
ENDFOR
dst[MAX:512] := 0
_mm512_mask_ternarylogic_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __mmask8 k, __m512i b, __m512i c, int imm8
- Param ETypes:
UI64 a, MASK k, UI64 b, UI64 c, IMM imm8
__m512i _mm512_mask_ternarylogic_epi64(__m512i a,
__mmask8 k,
__m512i b, __m512i c,
int imm8)
Intel Description
Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in “imm8”. For each bit in each packed 64-bit integer, the corresponding bit from “a”, “b”, and “c” are used according to “imm8”, and the result is written to the corresponding bit in “dst” using writemask “k” at 64-bit granularity (64-bit elements are copied from “a” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
DEFINE TernaryOP(imm8, a, b, c) {
CASE imm8[7:0] OF
0: dst[0] := 0 // imm8[7:0] := 0
1: dst[0] := NOT (a OR b OR c) // imm8[7:0] := NOT (_MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C)
// ...
254: dst[0] := a OR b OR c // imm8[7:0] := _MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C
255: dst[0] := 1 // imm8[7:0] := 1
ESAC
}
imm8[7:0] = LogicExp(_MM_TERNLOG_A, _MM_TERNLOG_B, _MM_TERNLOG_C)
FOR j := 0 to 7
i := j*64
IF k[j]
FOR h := 0 to 63
dst[i+h] := TernaryOP(imm8[7:0], a[i+h], b[i+h], c[i+h])
ENDFOR
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_ternarylogic_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask8 k, __m512i a, __m512i b, __m512i c, int imm8
- Param ETypes:
MASK k, UI64 a, UI64 b, UI64 c, IMM imm8
__m512i _mm512_maskz_ternarylogic_epi64(
__mmask8 k, __m512i a, __m512i b, __m512i c, int imm8)
Intel Description
Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in “imm8”. For each bit in each packed 64-bit integer, the corresponding bit from “a”, “b”, and “c” are used according to “imm8”, and the result is written to the corresponding bit in “dst” using zeromask “k” at 64-bit granularity (64-bit elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
DEFINE TernaryOP(imm8, a, b, c) {
CASE imm8[7:0] OF
0: dst[0] := 0 // imm8[7:0] := 0
1: dst[0] := NOT (a OR b OR c) // imm8[7:0] := NOT (_MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C)
// ...
254: dst[0] := a OR b OR c // imm8[7:0] := _MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C
255: dst[0] := 1 // imm8[7:0] := 1
ESAC
}
imm8[7:0] = LogicExp(_MM_TERNLOG_A, _MM_TERNLOG_B, _MM_TERNLOG_C)
FOR j := 0 to 7
i := j*64
IF k[j]
FOR h := 0 to 63
dst[i+h] := TernaryOP(imm8[7:0], a[i+h], b[i+h], c[i+h])
ENDFOR
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_ternarylogic_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b, __m512i c, int imm8
- Param ETypes:
UI64 a, UI64 b, UI64 c, IMM imm8
__m512i _mm512_ternarylogic_epi64(__m512i a, __m512i b,
__m512i c, int imm8)
Intel Description
Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in “imm8”. For each bit in each packed 64-bit integer, the corresponding bit from “a”, “b”, and “c” are used according to “imm8”, and the result is written to the corresponding bit in “dst”.
Intel Implementation Psudeo-Code
DEFINE TernaryOP(imm8, a, b, c) {
CASE imm8[7:0] OF
0: dst[0] := 0 // imm8[7:0] := 0
1: dst[0] := NOT (a OR b OR c) // imm8[7:0] := NOT (_MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C)
// ...
254: dst[0] := a OR b OR c // imm8[7:0] := _MM_TERNLOG_A OR _MM_TERNLOG_B OR _MM_TERNLOG_C
255: dst[0] := 1 // imm8[7:0] := 1
ESAC
}
imm8[7:0] = LogicExp(_MM_TERNLOG_A, _MM_TERNLOG_B, _MM_TERNLOG_C)
FOR j := 0 to 7
i := j*64
FOR h := 0 to 63
dst[i+h] := TernaryOP(imm8[7:0], a[i+h], b[i+h], c[i+h])
ENDFOR
ENDFOR
dst[MAX:512] := 0
_mm512_mask_test_epi64_mask#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__mmask8
- Param Types:
__mmask8 k1, __m512i a, __m512i b
- Param ETypes:
MASK k1, UI64 a, UI64 b
__mmask8 _mm512_mask_test_epi64_mask(__mmask8 k1, __m512i a,
__m512i b)
Intel Description
Compute the bitwise AND of packed 64-bit integers in “a” and “b”, producing intermediate 64-bit values, and set the corresponding bit in result mask “k” (subject to writemask “k”) if the intermediate value is non-zero.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k1[j]
k[j] := ((a[i+63:i] AND b[i+63:i]) != 0) ? 1 : 0
ELSE
k[j] := 0
FI
ENDFOR
k[MAX:8] := 0
_mm512_test_epi64_mask#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__mmask8
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__mmask8 _mm512_test_epi64_mask(__m512i a, __m512i b);
Intel Description
Compute the bitwise AND of packed 64-bit integers in “a” and “b”, producing intermediate 64-bit values, and set the corresponding bit in result mask “k” if the intermediate value is non-zero.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
k[j] := ((a[i+63:i] AND b[i+63:i]) != 0) ? 1 : 0
ENDFOR
k[MAX:8] := 0
_mm512_mask_testn_epi32_mask#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__mmask16
- Param Types:
__mmask16 k1, __m512i a, __m512i b
- Param ETypes:
MASK k1, UI32 a, UI32 b
__mmask16 _mm512_mask_testn_epi32_mask(__mmask16 k1,
__m512i a,
__m512i b)
Intel Description
Compute the bitwise NAND of packed 32-bit integers in “a” and “b”, producing intermediate 32-bit values, and set the corresponding bit in result mask “k” (subject to writemask “k”) if the intermediate value is zero.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k1[j]
k[j] := ((a[i+31:i] AND b[i+31:i]) == 0) ? 1 : 0
ELSE
k[j] := 0
FI
ENDFOR
k[MAX:16] := 0
_mm512_testn_epi32_mask#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__mmask16
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__mmask16 _mm512_testn_epi32_mask(__m512i a, __m512i b);
Intel Description
Compute the bitwise NAND of packed 32-bit integers in “a” and “b”, producing intermediate 32-bit values, and set the corresponding bit in result mask “k” if the intermediate value is zero.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
k[j] := ((a[i+31:i] AND b[i+31:i]) == 0) ? 1 : 0
ENDFOR
k[MAX:16] := 0
_mm512_mask_testn_epi64_mask#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__mmask8
- Param Types:
__mmask8 k1, __m512i a, __m512i b
- Param ETypes:
MASK k1, UI64 a, UI64 b
__mmask8 _mm512_mask_testn_epi64_mask(__mmask8 k1,
__m512i a, __m512i b)
Intel Description
Compute the bitwise NAND of packed 64-bit integers in “a” and “b”, producing intermediate 64-bit values, and set the corresponding bit in result mask “k” (subject to writemask “k”) if the intermediate value is zero.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k1[j]
k[j] := ((a[i+63:i] AND b[i+63:i]) == 0) ? 1 : 0
ELSE
k[j] := 0
FI
ENDFOR
k[MAX:8] := 0
_mm512_testn_epi64_mask#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__mmask8
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__mmask8 _mm512_testn_epi64_mask(__m512i a, __m512i b);
Intel Description
Compute the bitwise NAND of packed 64-bit integers in “a” and “b”, producing intermediate 64-bit values, and set the corresponding bit in result mask “k” if the intermediate value is zero.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
k[j] := ((a[i+63:i] AND b[i+63:i]) == 0) ? 1 : 0
ENDFOR
k[MAX:8] := 0
_mm512_maskz_xor_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask16 k, __m512i a, __m512i b
- Param ETypes:
MASK k, UI32 a, UI32 b
__m512i _mm512_maskz_xor_epi32(__mmask16 k, __m512i a,
__m512i b)
Intel Description
Compute the bitwise XOR of packed 32-bit integers in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] XOR b[i+31:i]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_maskz_xor_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__mmask8 k, __m512i a, __m512i b
- Param ETypes:
MASK k, UI64 a, UI64 b
__m512i _mm512_maskz_xor_epi64(__mmask8 k, __m512i a,
__m512i b)
Intel Description
Compute the bitwise XOR of packed 64-bit integers in “a” and “b”, and store the results in “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] XOR b[i+63:i]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:512] := 0
_mm512_and_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__m512i _mm512_and_epi32(__m512i a, __m512i b);
Intel Description
Compute the bitwise AND of packed 32-bit integers in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
dst[i+31:i] := a[i+31:i] AND b[i+31:i]
ENDFOR
dst[MAX:512] := 0
_mm512_and_si512#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
M512 a, M512 b
__m512i _mm512_and_si512(__m512i a, __m512i b);
Intel Description
Compute the bitwise AND of 512 bits (representing integer data) in “a” and “b”, and store the result in “dst”.
Intel Implementation Psudeo-Code
dst[511:0] := (a[511:0] AND b[511:0])
dst[MAX:512] := 0
_mm512_andnot_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__m512i _mm512_andnot_epi32(__m512i a, __m512i b);
Intel Description
Compute the bitwise NOT of packed 32-bit integers in “a” and then AND with “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
dst[i+31:i] := (NOT a[i+31:i]) AND b[i+31:i]
ENDFOR
dst[MAX:512] := 0
_mm512_andnot_si512#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
M512 a, M512 b
__m512i _mm512_andnot_si512(__m512i a, __m512i b);
Intel Description
Compute the bitwise NOT of 512 bits (representing integer data) in “a” and then AND with “b”, and store the result in “dst”.
Intel Implementation Psudeo-Code
dst[511:0] := ((NOT a[511:0]) AND b[511:0])
dst[MAX:512] := 0
_mm512_mask_andnot_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask16 k, __m512i a, __m512i b
- Param ETypes:
UI32 src, MASK k, UI32 a, UI32 b
__m512i _mm512_mask_andnot_epi32(__m512i src, __mmask16 k,
__m512i a, __m512i b)
Intel Description
Compute the bitwise NOT of packed 32-bit integers in “a” and then AND with “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := ((NOT a[i+31:i]) AND b[i+31:i])
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_andnot_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__m512i _mm512_andnot_epi64(__m512i a, __m512i b);
Intel Description
Compute the bitwise NOT of 512 bits (composed of packed 64-bit integers) in “a” and then AND with “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
dst[511:0] := ((NOT a[511:0]) AND b[511:0])
dst[MAX:512] := 0
_mm512_mask_andnot_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask8 k, __m512i a, __m512i b
- Param ETypes:
UI64 src, MASK k, UI64 a, UI64 b
__m512i _mm512_mask_andnot_epi64(__m512i src, __mmask8 k,
__m512i a, __m512i b)
Intel Description
Compute the bitwise NOT of packed 64-bit integers in “a” and then AND with “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := ((NOT a[i+63:i]) AND b[i+63:i])
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_and_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__m512i _mm512_and_epi64(__m512i a, __m512i b);
Intel Description
Compute the bitwise AND of 512 bits (composed of packed 64-bit integers) in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
dst[511:0] := (a[511:0] AND b[511:0])
dst[MAX:512] := 0
_mm512_mask_and_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask8 k, __m512i a, __m512i b
- Param ETypes:
UI64 src, MASK k, UI64 a, UI64 b
__m512i _mm512_mask_and_epi64(__m512i src, __mmask8 k,
__m512i a, __m512i b)
Intel Description
Compute the bitwise AND of packed 64-bit integers in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] AND b[i+63:i]
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_mask_or_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask16 k, __m512i a, __m512i b
- Param ETypes:
UI32 src, MASK k, UI32 a, UI32 b
__m512i _mm512_mask_or_epi32(__m512i src, __mmask16 k,
__m512i a, __m512i b)
Intel Description
Compute the bitwise OR of packed 32-bit integers in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] OR b[i+31:i]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_or_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__m512i _mm512_or_epi32(__m512i a, __m512i b);
Intel Description
Compute the bitwise OR of packed 32-bit integers in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
dst[i+31:i] := a[i+31:i] OR b[i+31:i]
ENDFOR
dst[MAX:512] := 0
_mm512_or_si512#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
M512 a, M512 b
__m512i _mm512_or_si512(__m512i a, __m512i b);
Intel Description
Compute the bitwise OR of 512 bits (representing integer data) in “a” and “b”, and store the result in “dst”.
Intel Implementation Psudeo-Code
dst[511:0] := (a[511:0] OR b[511:0])
dst[MAX:512] := 0
_mm512_mask_or_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask8 k, __m512i a, __m512i b
- Param ETypes:
UI64 src, MASK k, UI64 a, UI64 b
__m512i _mm512_mask_or_epi64(__m512i src, __mmask8 k,
__m512i a, __m512i b)
Intel Description
Compute the bitwise OR of packed 64-bit integers in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] OR b[i+63:i]
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_or_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__m512i _mm512_or_epi64(__m512i a, __m512i b);
Intel Description
Compute the bitwise OR of packed 64-bit integers in “a” and “b”, and store the resut in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
dst[i+63:i] := a[i+63:i] OR b[i+63:i]
ENDFOR
dst[MAX:512] := 0
_mm512_mask_test_epi32_mask#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__mmask16
- Param Types:
__mmask16 k1, __m512i a, __m512i b
- Param ETypes:
MASK k1, UI32 a, UI32 b
__mmask16 _mm512_mask_test_epi32_mask(__mmask16 k1,
__m512i a, __m512i b)
Intel Description
Compute the bitwise AND of packed 32-bit integers in “a” and “b”, producing intermediate 32-bit values, and set the corresponding bit in result mask “k” (subject to writemask “k”) if the intermediate value is non-zero.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k1[j]
k[j] := ((a[i+31:i] AND b[i+31:i]) != 0) ? 1 : 0
ELSE
k[j] := 0
FI
ENDFOR
k[MAX:16] := 0
_mm512_test_epi32_mask#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__mmask16
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__mmask16 _mm512_test_epi32_mask(__m512i a, __m512i b);
Intel Description
Compute the bitwise AND of packed 32-bit integers in “a” and “b”, producing intermediate 32-bit values, and set the corresponding bit in result mask “k” if the intermediate value is non-zero.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
k[j] := ((a[i+31:i] AND b[i+31:i]) != 0) ? 1 : 0
ENDFOR
k[MAX:16] := 0
_mm512_mask_xor_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask16 k, __m512i a, __m512i b
- Param ETypes:
UI32 src, MASK k, UI32 a, UI32 b
__m512i _mm512_mask_xor_epi32(__m512i src, __mmask16 k,
__m512i a, __m512i b)
Intel Description
Compute the bitwise XOR of packed 32-bit integers in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := a[i+31:i] XOR b[i+31:i]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_xor_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__m512i _mm512_xor_epi32(__m512i a, __m512i b);
Intel Description
Compute the bitwise XOR of packed 32-bit integers in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
dst[i+31:i] := a[i+31:i] XOR b[i+31:i]
ENDFOR
dst[MAX:512] := 0
_mm512_xor_si512#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
M512 a, M512 b
__m512i _mm512_xor_si512(__m512i a, __m512i b);
Intel Description
Compute the bitwise XOR of 512 bits (representing integer data) in “a” and “b”, and store the result in “dst”.
Intel Implementation Psudeo-Code
dst[511:0] := (a[511:0] XOR b[511:0])
dst[MAX:512] := 0
_mm512_mask_xor_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask8 k, __m512i a, __m512i b
- Param ETypes:
UI64 src, MASK k, UI64 a, UI64 b
__m512i _mm512_mask_xor_epi64(__m512i src, __mmask8 k,
__m512i a, __m512i b)
Intel Description
Compute the bitwise XOR of packed 64-bit integers in “a” and “b”, and store the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
IF k[j]
dst[i+63:i] := a[i+63:i] XOR b[i+63:i]
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_xor_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__m512i _mm512_xor_epi64(__m512i a, __m512i b);
Intel Description
Compute the bitwise XOR of packed 64-bit integers in “a” and “b”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := j*64
dst[i+63:i] := a[i+63:i] XOR b[i+63:i]
ENDFOR
dst[MAX:512] := 0
_mm512_mask_reduce_and_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
int
- Param Types:
__mmask16 k, __m512i a
- Param ETypes:
MASK k, UI32 a
int _mm512_mask_reduce_and_epi32(__mmask16 k, __m512i a);
Intel Description
Reduce the packed 32-bit integers in “a” by bitwise AND using mask “k”. Returns the bitwise AND of all active elements in “a”.
Intel Implementation Psudeo-Code
DEFINE REDUCE_AND(src, len) {
IF len == 2
RETURN src[31:0] AND src[63:32]
FI
len := len / 2
FOR j:= 0 to (len-1)
i := j*32
src[i+31:i] := src[i+31:i] AND src[i+32*len+31:i+32*len]
ENDFOR
RETURN REDUCE_AND(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] := 0xFFFFFFFF
FI
ENDFOR
dst[31:0] := REDUCE_AND(tmp, 16)
_mm512_mask_reduce_and_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__int64
- Param Types:
__mmask8 k, __m512i a
- Param ETypes:
MASK k, UI64 a
__int64 _mm512_mask_reduce_and_epi64(__mmask8 k, __m512i a);
Intel Description
Reduce the packed 64-bit integers in “a” by bitwise AND using mask “k”. Returns the bitwise AND of all active elements in “a”.
Intel Implementation Psudeo-Code
DEFINE REDUCE_AND(src, len) {
IF len == 2
RETURN src[63:0] AND src[127:64]
FI
len := len / 2
FOR j:= 0 to (len-1)
i := j*64
src[i+63:i] := src[i+63:i] AND src[i+64*len+63:i+64*len]
ENDFOR
RETURN REDUCE_AND(src[64*len-1:0], len)
}
tmp := a
FOR j := 0 to 8
i := j*64
IF k[j]
tmp[i+63:i] := a[i+63:i]
ELSE
tmp[i+63:i] := 0xFFFFFFFFFFFFFFFF
FI
ENDFOR
dst[63:0] := REDUCE_AND(tmp, 8)
_mm512_mask_reduce_or_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
int
- Param Types:
__mmask16 k, __m512i a
- Param ETypes:
MASK k, UI32 a
int _mm512_mask_reduce_or_epi32(__mmask16 k, __m512i a);
Intel 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”.
Intel Implementation Psudeo-Code
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)
_mm512_mask_reduce_or_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__int64
- Param Types:
__mmask8 k, __m512i a
- Param ETypes:
MASK k, UI64 a
__int64 _mm512_mask_reduce_or_epi64(__mmask8 k, __m512i a);
Intel Description
Reduce the packed 64-bit integers in “a” by bitwise OR using mask “k”. Returns the bitwise OR of all active elements in “a”.
Intel Implementation Psudeo-Code
DEFINE REDUCE_OR(src, len) {
IF len == 2
RETURN src[63:0] OR src[127:64]
FI
len := len / 2
FOR j:= 0 to (len-1)
i := j*64
src[i+63:i] := src[i+63:i] OR src[i+64*len+63:i+64*len]
ENDFOR
RETURN REDUCE_OR(src[64*len-1:0], len)
}
tmp := a
FOR j := 0 to 8
i := j*64
IF k[j]
tmp[i+63:i] := a[i+63:i]
ELSE
tmp[i+63:i] := 0
FI
ENDFOR
dst[63:0] := REDUCE_OR(tmp, 8)
_mm512_reduce_and_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
int
- Param Types:
__m512i a
- Param ETypes:
UI32 a
int _mm512_reduce_and_epi32(__m512i a);
Intel Description
Reduce the packed 32-bit integers in “a” by bitwise AND. Returns the bitwise AND of all elements in “a”.
Intel Implementation Psudeo-Code
DEFINE REDUCE_AND(src, len) {
IF len == 2
RETURN src[31:0] AND src[63:32]
FI
len := len / 2
FOR j:= 0 to (len-1)
i := j*32
src[i+31:i] := src[i+31:i] AND src[i+32*len+31:i+32*len]
ENDFOR
RETURN REDUCE_AND(src[32*len-1:0], len)
}
dst[31:0] := REDUCE_AND(a, 16)
_mm512_reduce_and_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__int64
- Param Types:
__m512i a
- Param ETypes:
UI64 a
__int64 _mm512_reduce_and_epi64(__m512i a);
Intel Description
Reduce the packed 64-bit integers in “a” by bitwise AND. Returns the bitwise AND of all elements in “a”.
Intel Implementation Psudeo-Code
DEFINE REDUCE_AND(src, len) {
IF len == 2
RETURN src[63:0] AND src[127:64]
FI
len := len / 2
FOR j:= 0 to (len-1)
i := j*64
src[i+63:i] := src[i+63:i] AND src[i+64*len+63:i+64*len]
ENDFOR
RETURN REDUCE_AND(src[64*len-1:0], len)
}
dst[63:0] := REDUCE_AND(a, 8)
_mm512_reduce_or_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
int
- Param Types:
__m512i a
- Param ETypes:
UI32 a
int _mm512_reduce_or_epi32(__m512i a);
Intel Description
Reduce the packed 32-bit integers in “a” by bitwise OR. Returns the bitwise OR of all elements in “a”.
Intel Implementation Psudeo-Code
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)
}
dst[31:0] := REDUCE_OR(a, 16)
_mm512_reduce_or_epi64#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__int64
- Param Types:
__m512i a
- Param ETypes:
UI64 a
__int64 _mm512_reduce_or_epi64(__m512i a);
Intel Description
Reduce the packed 64-bit integers in “a” by bitwise OR. Returns the bitwise OR of all elements in “a”.
Intel Implementation Psudeo-Code
DEFINE REDUCE_OR(src, len) {
IF len == 2
RETURN src[63:0] OR src[127:64]
FI
len := len / 2
FOR j:= 0 to (len-1)
i := j*64
src[i+63:i] := src[i+63:i] OR src[i+64*len+63:i+64*len]
ENDFOR
RETURN REDUCE_OR(src[64*len-1:0], len)
}
dst[63:0] := REDUCE_OR(a, 8)
_mm512_mask_and_epi32#
- Tech:
AVX-512
- Category:
Logical
- Header:
immintrin.h
- Searchable:
AVX-512-Logical-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask16 k, __m512i v2, __m512i v3
- Param ETypes:
UI32 src, MASK k, UI32 v2, UI32 v3
__m512i _mm512_mask_and_epi32(__m512i src, __mmask16 k,
__m512i v2, __m512i v3)
Intel Description
Performs element-by-element bitwise AND between packed 32-bit integer elements of “v2” and “v3”, storing the results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := j*32
IF k[j]
dst[i+31:i] := v2[i+31:i] & v3[i+31:i]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0