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

_mm_maskstore_epi32/64、_mm256_maskstore_epi32/64

各データ要素に関連するマスクビットに応じて、指定したメモリー位置にソースベクトルのダブルワード/クワッドワードを条件付きでストアします。対応するインテル® AVX2 命令は VPMASKMOVD または VPMASKMOVQ です。

構文

extern void _mm_maskstore_epi32(int * addr, __m128i vmask, __m128i val);

extern void _mm256_maskstore_epi32(int * addr, __m256i vmask, __m256i val);

extern void _mm_maskstore_epi64(__int64 * addr, __m128i vmask, __m128i val);

extern void _mm256_maskstore_epi64(__int64 * addr, __m256i vmask, __m256i val);

引数

addr

ロードするデータへのポインター

vmask

ベクトルマスク。vmask の要素が 0 の場合、メモリー位置にある値は変更されません。

val

"addr" で参照されるメモリー位置のベクトルに書き込まれる要素の位置。

説明

addr で参照されるメモリー位置にあるベクトルの対応する要素に、ソースベクトルの 32 ビットまたは 64 ビットのデータ要素を条件付きでストアします。マスクの要素が 0 の場合、メモリーにある結果ベクトルの対応する要素は変更されません。ベクトルマスクの各要素の最上位ビットのみが使用されます。

戻り値

マスク付きストア操作の結果。