AVX-512-Logical-YMM#

_mm256_mask_andnot_pd#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256d

Param Types:

__m256d src, __mmask8 k, __m256d a, __m256d b

Param ETypes:

FP64 src, MASK k, FP64 a, FP64 b

__m256d _mm256_mask_andnot_pd(__m256d src, __mmask8 k,
                              __m256d a, __m256d 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 3
        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:256] := 0

_mm256_maskz_andnot_pd#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256d

Param Types:

__mmask8 k, __m256d a, __m256d b

Param ETypes:

MASK k, FP64 a, FP64 b

__m256d _mm256_maskz_andnot_pd(__mmask8 k, __m256d a,
                               __m256d 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 3
        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:256] := 0

_mm256_mask_andnot_ps#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256

Param Types:

__m256 src, __mmask8 k, __m256 a, __m256 b

Param ETypes:

FP32 src, MASK k, FP32 a, FP32 b

__m256 _mm256_mask_andnot_ps(__m256 src, __mmask8 k,
                             __m256 a, __m256 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 7
        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:256] := 0

_mm256_maskz_andnot_ps#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256

Param Types:

__mmask8 k, __m256 a, __m256 b

Param ETypes:

MASK k, FP32 a, FP32 b

__m256 _mm256_maskz_andnot_ps(__mmask8 k, __m256 a,
                              __m256 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 7
        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:256] := 0

_mm256_mask_and_pd#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256d

Param Types:

__m256d src, __mmask8 k, __m256d a, __m256d b

Param ETypes:

FP64 src, MASK k, FP64 a, FP64 b

__m256d _mm256_mask_and_pd(__m256d src, __mmask8 k,
                           __m256d a, __m256d 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 3
        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:256] := 0

_mm256_maskz_and_pd#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256d

Param Types:

__mmask8 k, __m256d a, __m256d b

Param ETypes:

MASK k, FP64 a, FP64 b

__m256d _mm256_maskz_and_pd(__mmask8 k, __m256d a,
                            __m256d 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 3
        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:256] := 0

_mm256_mask_and_ps#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256

Param Types:

__m256 src, __mmask8 k, __m256 a, __m256 b

Param ETypes:

FP32 src, MASK k, FP32 a, FP32 b

__m256 _mm256_mask_and_ps(__m256 src, __mmask8 k, __m256 a,
                          __m256 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 7
        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:256] := 0

_mm256_maskz_and_ps#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256

Param Types:

__mmask8 k, __m256 a, __m256 b

Param ETypes:

MASK k, FP32 a, FP32 b

__m256 _mm256_maskz_and_ps(__mmask8 k, __m256 a, __m256 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 7
        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:256] := 0

_mm256_mask_or_pd#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256d

Param Types:

__m256d src, __mmask8 k, __m256d a, __m256d b

Param ETypes:

FP64 src, MASK k, FP64 a, FP64 b

__m256d _mm256_mask_or_pd(__m256d src, __mmask8 k,
                          __m256d a, __m256d 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 3
        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:256] := 0

_mm256_maskz_or_pd#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256d

Param Types:

__mmask8 k, __m256d a, __m256d b

Param ETypes:

MASK k, FP64 a, FP64 b

__m256d _mm256_maskz_or_pd(__mmask8 k, __m256d a,
                           __m256d 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 3
        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:256] := 0

_mm256_mask_or_ps#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256

Param Types:

__m256 src, __mmask8 k, __m256 a, __m256 b

Param ETypes:

FP32 src, MASK k, FP32 a, FP32 b

__m256 _mm256_mask_or_ps(__m256 src, __mmask8 k, __m256 a,
                         __m256 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 7
        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:256] := 0

_mm256_maskz_or_ps#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256

Param Types:

__mmask8 k, __m256 a, __m256 b

Param ETypes:

MASK k, FP32 a, FP32 b

__m256 _mm256_maskz_or_ps(__mmask8 k, __m256 a, __m256 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 7
        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:256] := 0

_mm256_mask_xor_pd#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256d

Param Types:

__m256d src, __mmask8 k, __m256d a, __m256d b

Param ETypes:

FP64 src, MASK k, FP64 a, FP64 b

__m256d _mm256_mask_xor_pd(__m256d src, __mmask8 k,
                           __m256d a, __m256d 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 3
        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:256] := 0

_mm256_maskz_xor_pd#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256d

Param Types:

__mmask8 k, __m256d a, __m256d b

Param ETypes:

MASK k, FP64 a, FP64 b

__m256d _mm256_maskz_xor_pd(__mmask8 k, __m256d a,
                            __m256d 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 3
        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:256] := 0

_mm256_mask_xor_ps#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256

Param Types:

__m256 src, __mmask8 k, __m256 a, __m256 b

Param ETypes:

FP32 src, MASK k, FP32 a, FP32 b

__m256 _mm256_mask_xor_ps(__m256 src, __mmask8 k, __m256 a,
                          __m256 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 7
        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:256] := 0

_mm256_maskz_xor_ps#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256

Param Types:

__mmask8 k, __m256 a, __m256 b

Param ETypes:

MASK k, FP32 a, FP32 b

__m256 _mm256_maskz_xor_ps(__mmask8 k, __m256 a, __m256 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 7
        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:256] := 0

_mm256_mask_and_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i src, __mmask8 k, __m256i a, __m256i b

Param ETypes:

UI32 src, MASK k, UI32 a, UI32 b

__m256i _mm256_mask_and_epi32(__m256i src, __mmask8 k,
                              __m256i a, __m256i b)

Intel Description

Compute the bitwise AND 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 7
        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:256] := 0

_mm256_maskz_and_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b

Param ETypes:

MASK k, UI32 a, UI32 b

__m256i _mm256_maskz_and_epi32(__mmask8 k, __m256i a,
                               __m256i 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 7
        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:256] := 0

_mm256_mask_andnot_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i src, __mmask8 k, __m256i a, __m256i b

Param ETypes:

UI32 src, MASK k, UI32 a, UI32 b

__m256i _mm256_mask_andnot_epi32(__m256i src, __mmask8 k,
                                 __m256i a, __m256i 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 7
        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:256] := 0

_mm256_maskz_andnot_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b

Param ETypes:

MASK k, UI32 a, UI32 b

__m256i _mm256_maskz_andnot_epi32(__mmask8 k, __m256i a,
                                  __m256i 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 7
        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:256] := 0

_mm256_mask_andnot_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i src, __mmask8 k, __m256i a, __m256i b

Param ETypes:

UI64 src, MASK k, UI64 a, UI64 b

__m256i _mm256_mask_andnot_epi64(__m256i src, __mmask8 k,
                                 __m256i a, __m256i 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 3
        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:256] := 0

_mm256_maskz_andnot_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b

Param ETypes:

MASK k, UI64 a, UI64 b

__m256i _mm256_maskz_andnot_epi64(__mmask8 k, __m256i a,
                                  __m256i 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 3
        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:256] := 0

_mm256_mask_and_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i src, __mmask8 k, __m256i a, __m256i b

Param ETypes:

UI64 src, MASK k, UI64 a, UI64 b

__m256i _mm256_mask_and_epi64(__m256i src, __mmask8 k,
                              __m256i a, __m256i 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 3
        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:256] := 0

_mm256_maskz_and_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b

Param ETypes:

MASK k, UI64 a, UI64 b

__m256i _mm256_maskz_and_epi64(__mmask8 k, __m256i a,
                               __m256i 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 3
        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:256] := 0

_mm256_mask_or_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i src, __mmask8 k, __m256i a, __m256i b

Param ETypes:

UI32 src, MASK k, UI32 a, UI32 b

__m256i _mm256_mask_or_epi32(__m256i src, __mmask8 k,
                             __m256i a, __m256i 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 7
        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:256] := 0

_mm256_maskz_or_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b

Param ETypes:

MASK k, UI32 a, UI32 b

__m256i _mm256_maskz_or_epi32(__mmask8 k, __m256i a,
                              __m256i 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 7
        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:256] := 0

_mm256_mask_or_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i src, __mmask8 k, __m256i a, __m256i b

Param ETypes:

UI64 src, MASK k, UI64 a, UI64 b

__m256i _mm256_mask_or_epi64(__m256i src, __mmask8 k,
                             __m256i a, __m256i 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 3
        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:256] := 0

_mm256_maskz_or_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b

Param ETypes:

MASK k, UI64 a, UI64 b

__m256i _mm256_maskz_or_epi64(__mmask8 k, __m256i a,
                              __m256i 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 3
        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:256] := 0

_mm256_mask_ternarylogic_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i a, __mmask8 k, __m256i b, __m256i c, int imm8

Param ETypes:

UI32 a, MASK k, UI32 b, UI32 c, IMM imm8

__m256i _mm256_mask_ternarylogic_epi32(__m256i a,
                                       __mmask8 k,
                                       __m256i b, __m256i 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 7
        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:256] := 0

_mm256_maskz_ternarylogic_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b, __m256i c, int imm8

Param ETypes:

MASK k, UI32 a, UI32 b, UI32 c, IMM imm8

__m256i _mm256_maskz_ternarylogic_epi32(
    __mmask8 k, __m256i a, __m256i b, __m256i 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 7
        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:256] := 0

_mm256_ternarylogic_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i a, __m256i b, __m256i c, int imm8

Param ETypes:

UI32 a, UI32 b, UI32 c, IMM imm8

__m256i _mm256_ternarylogic_epi32(__m256i a, __m256i b,
                                  __m256i 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 7
        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:256] := 0

_mm256_mask_ternarylogic_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i a, __mmask8 k, __m256i b, __m256i c, int imm8

Param ETypes:

UI64 a, MASK k, UI64 b, UI64 c, IMM imm8

__m256i _mm256_mask_ternarylogic_epi64(__m256i a,
                                       __mmask8 k,
                                       __m256i b, __m256i 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 3
        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:256] := 0

_mm256_maskz_ternarylogic_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b, __m256i c, int imm8

Param ETypes:

MASK k, UI64 a, UI64 b, UI64 c, IMM imm8

__m256i _mm256_maskz_ternarylogic_epi64(
    __mmask8 k, __m256i a, __m256i b, __m256i 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 3
        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:256] := 0

_mm256_ternarylogic_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i a, __m256i b, __m256i c, int imm8

Param ETypes:

UI64 a, UI64 b, UI64 c, IMM imm8

__m256i _mm256_ternarylogic_epi64(__m256i a, __m256i b,
                                  __m256i 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 3
        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:256] := 0

_mm256_mask_xor_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i src, __mmask8 k, __m256i a, __m256i b

Param ETypes:

UI32 src, MASK k, UI32 a, UI32 b

__m256i _mm256_mask_xor_epi32(__m256i src, __mmask8 k,
                              __m256i a, __m256i 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 7
        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:256] := 0

_mm256_maskz_xor_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b

Param ETypes:

MASK k, UI32 a, UI32 b

__m256i _mm256_maskz_xor_epi32(__mmask8 k, __m256i a,
                               __m256i 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 7
        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:256] := 0

_mm256_mask_xor_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i src, __mmask8 k, __m256i a, __m256i b

Param ETypes:

UI64 src, MASK k, UI64 a, UI64 b

__m256i _mm256_mask_xor_epi64(__m256i src, __mmask8 k,
                              __m256i a, __m256i 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 3
        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:256] := 0

_mm256_maskz_xor_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__mmask8 k, __m256i a, __m256i b

Param ETypes:

MASK k, UI64 a, UI64 b

__m256i _mm256_maskz_xor_epi64(__mmask8 k, __m256i a,
                               __m256i 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 3
        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:256] := 0

_mm256_xor_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i a, __m256i b

Param ETypes:

UI64 a, UI64 b

__m256i _mm256_xor_epi64(__m256i a, __m256i 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 3
        i := j*64
        dst[i+63:i] := a[i+63:i] XOR b[i+63:i]
ENDFOR
dst[MAX:256] := 0

_mm256_xor_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i a, __m256i b

Param ETypes:

UI32 a, UI32 b

__m256i _mm256_xor_epi32(__m256i a, __m256i 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 7
        i := j*32
        dst[i+31:i] := a[i+31:i] XOR b[i+31:i]
ENDFOR
dst[MAX:256] := 0

_mm256_or_epi64#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i a, __m256i b

Param ETypes:

UI64 a, UI64 b

__m256i _mm256_or_epi64(__m256i a, __m256i b);

Intel Description

Compute the bitwise OR of packed 64-bit integers in “a” and “b”, and store the results in “dst”.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*64
        dst[i+63:i] := a[i+63:i] OR b[i+63:i]
ENDFOR
dst[MAX:256] := 0

_mm256_or_epi32#

Tech:

AVX-512

Category:

Logical

Header:

immintrin.h

Searchable:

AVX-512-Logical-YMM

Register:

YMM 256 bit

Return Type:

__m256i

Param Types:

__m256i a, __m256i b

Param ETypes:

UI32 a, UI32 b

__m256i _mm256_or_epi32(__m256i a, __m256i 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 7
        i := j*32
        dst[i+31:i] := a[i+31:i] OR b[i+31:i]
ENDFOR
dst[MAX:256] := 0