AVX-512-Move-YMM#
_mm256_mask_mov_epi16#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256i
- Param Types:
__m256i src, __mmask16 k, __m256i a
- Param ETypes:
UI16 src, MASK k, UI16 a
__m256i _mm256_mask_mov_epi16(__m256i src, __mmask16 k,
__m256i a)
Intel Description
Move packed 16-bit integers from “a” into “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*16
IF k[j]
dst[i+15:i] := a[i+15:i]
ELSE
dst[i+15:i] := src[i+15:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_mov_epi16#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256i
- Param Types:
__mmask16 k, __m256i a
- Param ETypes:
MASK k, UI16 a
__m256i _mm256_maskz_mov_epi16(__mmask16 k, __m256i a);
Intel Description
Move packed 16-bit integers from “a” into “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*16
IF k[j]
dst[i+15:i] := a[i+15:i]
ELSE
dst[i+15:i] := 0
FI
ENDFOR
dst[MAX:256] := 0
_mm256_mask_mov_epi8#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256i
- Param Types:
__m256i src, __mmask32 k, __m256i a
- Param ETypes:
UI8 src, MASK k, UI8 a
__m256i _mm256_mask_mov_epi8(__m256i src, __mmask32 k,
__m256i a)
Intel Description
Move packed 8-bit integers from “a” into “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 31
i := j*8
IF k[j]
dst[i+7:i] := a[i+7:i]
ELSE
dst[i+7:i] := src[i+7:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_mov_epi8#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256i
- Param Types:
__mmask32 k, __m256i a
- Param ETypes:
MASK k, UI8 a
__m256i _mm256_maskz_mov_epi8(__mmask32 k, __m256i a);
Intel Description
Move packed 8-bit integers from “a” into “dst” using zeromask “k” (elements are zeroed out when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 31
i := j*8
IF k[j]
dst[i+7:i] := a[i+7:i]
ELSE
dst[i+7:i] := 0
FI
ENDFOR
dst[MAX:256] := 0
_mm256_mask_mov_pd#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256d
- Param Types:
__m256d src, __mmask8 k, __m256d a
- Param ETypes:
FP64 src, MASK k, FP64 a
__m256d _mm256_mask_mov_pd(__m256d src, __mmask8 k,
__m256d a)
Intel Description
Move packed double-precision (64-bit) floating-point elements from “a” to “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]
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_mov_pd#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256d
- Param Types:
__mmask8 k, __m256d a
- Param ETypes:
MASK k, FP64 a
__m256d _mm256_maskz_mov_pd(__mmask8 k, __m256d a);
Intel Description
Move packed double-precision (64-bit) floating-point elements from “a” into “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]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:256] := 0
_mm256_mask_mov_ps#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256
- Param Types:
__m256 src, __mmask8 k, __m256 a
- Param ETypes:
FP32 src, MASK k, FP32 a
__m256 _mm256_mask_mov_ps(__m256 src, __mmask8 k, __m256 a);
Intel Description
Move packed single-precision (32-bit) floating-point elements from “a” to “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]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_mov_ps#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256
- Param Types:
__mmask8 k, __m256 a
- Param ETypes:
MASK k, FP32 a
__m256 _mm256_maskz_mov_ps(__mmask8 k, __m256 a);
Intel Description
Move packed single-precision (32-bit) floating-point elements from “a” into “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]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:256] := 0
_mm256_mask_movedup_pd#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256d
- Param Types:
__m256d src, __mmask8 k, __m256d a
- Param ETypes:
FP64 src, MASK k, FP64 a
__m256d _mm256_mask_movedup_pd(__m256d src, __mmask8 k,
__m256d a)
Intel Description
Duplicate even-indexed double-precision (64-bit) floating-point elements from “a”, 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
tmp[63:0] := a[63:0]
tmp[127:64] := a[63:0]
tmp[191:128] := a[191:128]
tmp[255:192] := a[191:128]
FOR j := 0 to 3
i := j*64
IF k[j]
dst[i+63:i] := tmp[i+63:i]
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_movedup_pd#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256d
- Param Types:
__mmask8 k, __m256d a
- Param ETypes:
MASK k, FP64 a
__m256d _mm256_maskz_movedup_pd(__mmask8 k, __m256d a);
Intel Description
Duplicate even-indexed double-precision (64-bit) floating-point elements from “a”, 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
tmp[63:0] := a[63:0]
tmp[127:64] := a[63:0]
tmp[191:128] := a[191:128]
tmp[255:192] := a[191:128]
FOR j := 0 to 3
i := j*64
IF k[j]
dst[i+63:i] := tmp[i+63:i]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:256] := 0
_mm256_mask_mov_epi32#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256i
- Param Types:
__m256i src, __mmask8 k, __m256i a
- Param ETypes:
UI32 src, MASK k, UI32 a
__m256i _mm256_mask_mov_epi32(__m256i src, __mmask8 k,
__m256i a)
Intel Description
Move packed 32-bit integers from “a” to “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]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_mov_epi32#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256i
- Param Types:
__mmask8 k, __m256i a
- Param ETypes:
MASK k, UI32 a
__m256i _mm256_maskz_mov_epi32(__mmask8 k, __m256i a);
Intel Description
Move packed 32-bit integers from “a” into “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]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:256] := 0
_mm256_mask_mov_epi64#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256i
- Param Types:
__m256i src, __mmask8 k, __m256i a
- Param ETypes:
UI64 src, MASK k, UI64 a
__m256i _mm256_mask_mov_epi64(__m256i src, __mmask8 k,
__m256i a)
Intel Description
Move packed 64-bit integers from “a” to “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]
ELSE
dst[i+63:i] := src[i+63:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_mov_epi64#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256i
- Param Types:
__mmask8 k, __m256i a
- Param ETypes:
MASK k, UI64 a
__m256i _mm256_maskz_mov_epi64(__mmask8 k, __m256i a);
Intel Description
Move packed 64-bit integers from “a” into “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]
ELSE
dst[i+63:i] := 0
FI
ENDFOR
dst[MAX:256] := 0
_mm256_mask_movehdup_ps#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256
- Param Types:
__m256 src, __mmask8 k, __m256 a
- Param ETypes:
FP32 src, MASK k, FP32 a
__m256 _mm256_mask_movehdup_ps(__m256 src, __mmask8 k,
__m256 a)
Intel Description
Duplicate odd-indexed single-precision (32-bit) floating-point elements from “a”, 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
tmp[31:0] := a[63:32]
tmp[63:32] := a[63:32]
tmp[95:64] := a[127:96]
tmp[127:96] := a[127:96]
tmp[159:128] := a[191:160]
tmp[191:160] := a[191:160]
tmp[223:192] := a[255:224]
tmp[255:224] := a[255:224]
FOR j := 0 to 7
i := j*32
IF k[j]
dst[i+31:i] := tmp[i+31:i]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_movehdup_ps#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256
- Param Types:
__mmask8 k, __m256 a
- Param ETypes:
MASK k, FP32 a
__m256 _mm256_maskz_movehdup_ps(__mmask8 k, __m256 a);
Intel Description
Duplicate odd-indexed single-precision (32-bit) floating-point elements from “a”, 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
tmp[31:0] := a[63:32]
tmp[63:32] := a[63:32]
tmp[95:64] := a[127:96]
tmp[127:96] := a[127:96]
tmp[159:128] := a[191:160]
tmp[191:160] := a[191:160]
tmp[223:192] := a[255:224]
tmp[255:224] := a[255:224]
FOR j := 0 to 7
i := j*32
IF k[j]
dst[i+31:i] := tmp[i+31:i]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:256] := 0
_mm256_mask_moveldup_ps#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256
- Param Types:
__m256 src, __mmask8 k, __m256 a
- Param ETypes:
FP32 src, MASK k, FP32 a
__m256 _mm256_mask_moveldup_ps(__m256 src, __mmask8 k,
__m256 a)
Intel Description
Duplicate even-indexed single-precision (32-bit) floating-point elements from “a”, 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
tmp[31:0] := a[31:0]
tmp[63:32] := a[31:0]
tmp[95:64] := a[95:64]
tmp[127:96] := a[95:64]
tmp[159:128] := a[159:128]
tmp[191:160] := a[159:128]
tmp[223:192] := a[223:192]
tmp[255:224] := a[223:192]
FOR j := 0 to 7
i := j*32
IF k[j]
dst[i+31:i] := tmp[i+31:i]
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:256] := 0
_mm256_maskz_moveldup_ps#
- Tech:
AVX-512
- Category:
Move
- Header:
immintrin.h
- Searchable:
AVX-512-Move-YMM
- Register:
YMM 256 bit
- Return Type:
__m256
- Param Types:
__mmask8 k, __m256 a
- Param ETypes:
MASK k, FP32 a
__m256 _mm256_maskz_moveldup_ps(__mmask8 k, __m256 a);
Intel Description
Duplicate even-indexed single-precision (32-bit) floating-point elements from “a”, 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
tmp[31:0] := a[31:0]
tmp[63:32] := a[31:0]
tmp[95:64] := a[95:64]
tmp[127:96] := a[95:64]
tmp[159:128] := a[159:128]
tmp[191:160] := a[159:128]
tmp[223:192] := a[223:192]
tmp[255:224] := a[223:192]
FOR j := 0 to 7
i := j*32
IF k[j]
dst[i+31:i] := tmp[i+31:i]
ELSE
dst[i+31:i] := 0
FI
ENDFOR
dst[MAX:256] := 0