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

_mm512_extpackstorelo_pd/_mm512_mask_extpackstorelo_pd

float64 ベクトルのマスクがセットされている要素を、アライメントされていない float64 ストリームにパックして逆方向変換し、メモリーの 64 バイトでアライメントされた下位の部分にマップするストリーム部分をストアします。対応する命令は VPACKSTORELD です。 この組込み関数は、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーにのみ適用されます。

構文

マスクなし

extern void __cdecl _mm512_extpackstorelo_pd(void* mt, __m512d v1, _MM_DOWNCONV_PD_ENUM conv, int hint);

マスク付き

extern void __cdecl _mm512_mask_extpackstorelo_pd(void* mt, __mmask8 k1, __m512d v1, _MM_DOWNCONV_PD_ENUM conv, int hint);

引数

v1

ストアする要素を含むソースベクトル

conv

逆方向変換の種類。次のいずれかになります。

  • _MM_DOWNCONV_PD_NONE - 変換なし

k1

ストリームに追加する要素を選択するベクトルマスク

mt

ベクトル要素をストアするメモリー位置

hint

プロセッサーにデータが非テンポラルでないことを示すヒント。0 または 1 を使用できます。それぞれの値の意味は次のとおりです。

  • _MM_HINT_NONE = 0
  • _MM_HINT_NT = 1 (ストアは非テンポラル)

説明

float64 ベクトル v1 のマスクがセットされている要素を、要素がアライメントされたアドレス mt で始まる、論理的にマップされたバイト/ワード/ダブルワード・ストリームにパックして逆方向変換し、ストリームの下位 64 バイトの要素 (mt 以降の 64 バイトでアライメントされた最初のアドレス、またはその後でマップするストリームの要素、現在の実装では下位のキャッシュライン) をストアします。ストリームの長さはセットされているマスクの数に依存します。マスクがセットされていない要素はストリームに追加されません。

マスク引数 k1 は、この関数では書き込みマスクとして使用されません。 代わりに、マスクは、ストリームに追加する要素を選択する要素セレクターとして使用されます。

戻り値

なし。