インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス

移動操作の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。

#include <immintrin.h>


変数 定義
src

書き込みマスクの結果に応じて使用されるソース要素

k

セレクターとして使用される書き込みマスク

a

1 つ目のソースベクトルの要素


_mm_mask_mov_pd

__m128d _mm_mask_mov_pd(__m128d src, __mmask8 k, __m128d a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovapd

書き込みマスク k を使用して、a のパックド倍精度 (64 ビット) 浮動小数点要素を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_mov_pd

__m128d _mm_maskz_mov_pd(__mmask8 k, __m128d a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovapd

ゼロマスク k を使用して、a のパックド倍精度 (64 ビット) 浮動小数点要素を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_mov_pd

__m256d _mm256_mask_mov_pd(__m256d src, __mmask8 k, __m256d a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovapd

書き込みマスク k を使用して、a のパックド倍精度 (64 ビット) 浮動小数点要素を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_mov_pd

__m256d _mm256_maskz_mov_pd(__mmask8 k, __m256d a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovapd

ゼロマスク k を使用して、a のパックド倍精度 (64 ビット) 浮動小数点要素を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_mov_ps

__m128 _mm_mask_mov_ps(__m128 src, __mmask8 k, __m128 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovaps

書き込みマスク k を使用して、a のパックド単精度 (32 ビット) 浮動小数点要素を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_mov_ps

__m128 _mm_maskz_mov_ps(__mmask8 k, __m128 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovaps

ゼロマスク k を使用して、a のパックド単精度 (32 ビット) 浮動小数点要素を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_mov_ps

__m256 _mm256_mask_mov_ps(__m256 src, __mmask8 k, __m256 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovaps

書き込みマスク k を使用して、a のパックド単精度 (32 ビット) 浮動小数点要素を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_mov_ps

__m256 _mm256_maskz_mov_ps(__mmask8 k, __m256 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovaps

ゼロマスク k を使用して、a のパックド単精度 (32 ビット) 浮動小数点要素を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_movedup_pd

__m128d _mm_mask_movedup_pd(__m128d src, __mmask8 k, __m128d a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovddup

a のインデックスが偶数の倍精度 (64 ビット) 浮動小数点要素を複製し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_movedup_pd

__m128d _mm_maskz_movedup_pd(__mmask8 k, __m128d a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovddup

a のインデックスが偶数の倍精度 (64 ビット) 浮動小数点要素を複製し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_movedup_pd

__m256d _mm256_mask_movedup_pd(__m256d src, __mmask8 k, __m256d a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovddup

a のインデックスが偶数の倍精度 (64 ビット) 浮動小数点要素を複製し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_movedup_pd

__m256d _mm256_maskz_movedup_pd(__mmask8 k, __m256d a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovddup

a のインデックスが偶数の倍精度 (64 ビット) 浮動小数点要素を複製し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_movehdup_ps

__m128 _mm_mask_movehdup_ps(__m128 src, __mmask8 k, __m128 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovshdup

a のインデックスが奇数の単精度 (32 ビット) 浮動小数点要素を複製し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_movehdup_ps

__m128 _mm_maskz_movehdup_ps(__mmask8 k, __m128 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovshdup

a のインデックスが奇数の単精度 (32 ビット) 浮動小数点要素を複製し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_movehdup_ps

__m256 _mm256_mask_movehdup_ps(__m256 src, __mmask8 k, __m256 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovshdup

a のインデックスが奇数の単精度 (32 ビット) 浮動小数点要素を複製し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_movehdup_ps

__m256 _mm256_maskz_movehdup_ps(__mmask8 k, __m256 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovshdup

a のインデックスが奇数の単精度 (32 ビット) 浮動小数点要素を複製し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_moveldup_ps

__m128 _mm_mask_moveldup_ps(__m128 src, __mmask8 k, __m128 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovsldup

a のインデックスが偶数の単精度 (32 ビット) 浮動小数点要素を複製し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_moveldup_ps

__m128 _mm_maskz_moveldup_ps(__mmask8 k, __m128 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovsldup

a のインデックスが偶数の単精度 (32 ビット) 浮動小数点要素を複製し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_moveldup_ps

__m256 _mm256_mask_moveldup_ps(__m256 src, __mmask8 k, __m256 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovsldup

a のインデックスが偶数の単精度 (32 ビット) 浮動小数点要素を複製し、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_moveldup_ps

__m256 _mm256_maskz_moveldup_ps(__mmask8 k, __m256 a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovsldup

a のインデックスが偶数の単精度 (32 ビット) 浮動小数点要素を複製し、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_mov_epi32

__m128i _mm_mask_mov_epi32(__m128i src, __mmask8 k, __m128i a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovdqa32

書き込みマスク k を使用して、a のパックド 32 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_mov_epi32

__m128i _mm_maskz_mov_epi32(__mmask8 k, __m128i a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovdqa32

ゼロマスク k を使用して、a のパックド 32 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_mov_epi32

__m256i _mm256_mask_mov_epi32(__m256i src, __mmask8 k, __m256i a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovdqa32

書き込みマスク k を使用して、a のパックド 32 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_mov_epi32

__m256i _mm256_maskz_mov_epi32(__mmask8 k, __m256i a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovdqa32

ゼロマスク k を使用して、a のパックド 32 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_mov_epi64

__m128i _mm_mask_mov_epi64(__m128i src, __mmask8 k, __m128i a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovdqa64

書き込みマスク k を使用して、a のパックド 64 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_mov_epi64

__m128i _mm_maskz_mov_epi64(__mmask8 k, __m128i a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovdqa64

ゼロマスク k を使用して、a のパックド 64 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_mov_epi64

__m256i _mm256_mask_mov_epi64(__m256i src, __mmask8 k, __m256i a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovdqa64

書き込みマスク k を使用して、a のパックド 64 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_mov_epi64

__m256i _mm256_maskz_mov_epi64(__mmask8 k, __m256i a)

CPUID フラグ: AVX512F、AVX512VL

命令: vmovdqa64

ゼロマスク k を使用して、a のパックド 64 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_mov_epi16

__m128i _mm_mask_mov_epi16(__m128i src, __mmask8 k, __m128i a)

CPUID フラグ: AVX512BW、AVX512VL

命令: vmovdqu16

書き込みマスク k を使用して、a のパックド 16 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_mov_epi16

__m128i _mm_maskz_mov_epi16(__mmask8 k, __m128i a)

CPUID フラグ: AVX512BW、AVX512VL

命令: vmovdqu16

ゼロマスク k を使用して、a のパックド 16 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_mov_epi16

__m256i _mm256_mask_mov_epi16(__m256i src, __mmask16 k, __m256i a)

CPUID フラグ: AVX512BW、AVX512VL

命令: vmovdqu16

書き込みマスク k を使用して、a のパックド 16 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_mov_epi16

__m256i _mm256_maskz_mov_epi16(__mmask16 k, __m256i a)

CPUID フラグ: AVX512BW、AVX512VL

命令: vmovdqu16

ゼロマスク k を使用して、a のパックド 16 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_mask_mov_epi16

__m512i _mm512_mask_mov_epi16(__m512i src, __mmask32 k, __m512i a)

CPUID フラグ: AVX512BW

命令: vmovdqu16

書き込みマスク k を使用して、a のパックド 16 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_mov_epi16

__m512i _mm512_maskz_mov_epi16(__mmask32 k, __m512i a)

CPUID フラグ: AVX512BW

命令: vmovdqu16

ゼロマスク k を使用して、a のパックド 16 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_mov_epi8

__m128i _mm_mask_mov_epi8(__m128i src, __mmask16 k, __m128i a)

CPUID フラグ: AVX512BW、AVX512VL

命令: vmovdqu8

書き込みマスク k を使用して、a のパックド 8 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm_maskz_mov_epi8

__m128i _mm_maskz_mov_epi8(__mmask16 k, __m128i a)

CPUID フラグ: AVX512BW、AVX512VL

命令: vmovdqu8

ゼロマスク k を使用して、a のパックド 8 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm256_mask_mov_epi8

__m256i _mm256_mask_mov_epi8(__m256i src, __mmask32 k, __m256i a)

CPUID フラグ: AVX512BW、AVX512VL

命令: vmovdqu8

書き込みマスク k を使用して、a のパックド 8 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm256_maskz_mov_epi8

__m256i _mm256_maskz_mov_epi8(__mmask32 k, __m256i a)

CPUID フラグ: AVX512BW、AVX512VL

命令: vmovdqu8

ゼロマスク k を使用して、a のパックド 8 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_mask_mov_epi8

__m512i _mm512_mask_mov_epi8(__m512i src, __mmask64 k, __m512i a)

CPUID フラグ: AVX512BW

命令: vmovdqu8

書き込みマスク k を使用して、a のパックド 8 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。



_mm512_maskz_mov_epi8

__m512i _mm512_maskz_mov_epi8(__mmask64 k, __m512i a)

CPUID フラグ: AVX512BW

命令: vmovdqu8

ゼロマスク k を使用して、a のパックド 8 ビット整数を戻り値へ移動します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。