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

_mm512_extpackstorehi_epi64/_mm512_mask_extpackstorehi_epi64

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

構文

マスクなし

extern void __cdecl _mm512_mask_extpackstorehi_epi64(void* mt, __m512i v1, _MM_DOWNCONV_EPI64_ENUM conv, int hint);

マスク付き

extern void __cdecl _mm512_mask_extpackstorehi_epi64(void* mt, __mmask8 k1, __m512i v1, _MM_DOWNCONV_EPI64_ENUM conv, int hint);

引数

v1

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

conv

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

  • _MM_DOWNCONV_EPI64_NONE - 変換なし

k1

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

mt

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

hint

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

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

説明

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

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

戻り値

なし。