インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
アライメントされていないダブルワード・ストリームの 64 バイトでアライメントされた上位の部分をロードし、マスクがセットされている要素をアンパックして、int32 ベクトルにストアします。対応する命令は VLOADUNPACKLD です。この組込み関数は、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーにのみ適用されます。
マスクなし extern __m512i __cdecl _mm512_extloadunpacklo_epi32(__m512i v1_old, void const* mt, _MM_UPCONV_EPI32_ENUM conv, int hint); |
マスク付き extern __m512i __cdecl _mm512_mask_extloadunpacklo_epi32(__m512i v1_old, __mmask16 k1, void const* mt, _MM_UPCONV_EPI32_ENUM conv, int hint); |
要素がアライメントされたアドレス mt で始まる、バイト/ワード/ダブルワード・ストリームの 64 バイトでアライメントされた下位の部分がロード、変換、拡張され、書き込みマスクがセットされている要素がダブルワードの結果ベクトルに格納されます。ダブルワード・ベクトルの初期値は v1_old ベクトルからコピーされます。 各ダブルワードは、結果ベクトルの対応するダブルワードにのみマップされ、結果ベクトルの書き込みマスクがセットされている要素はスキップされるため、書き込みマスクでセットされているビットの数が変換したダブルワード・ストリームの長さになります。
この関数は、ストリーム中の mt 以降の、64 バイトでアライメントされた最初のアドレスの前にある (つまり、現在の実装では、メモリーストリームの上位のキャッシュラインにある) 変換したダブルワードを転送します (存在する場合)。 ストリームのダブルワードにマップしない結果ベクトルの要素は変更されません (v1_old から取得されます)。