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

_mm512_extloadunpackhi_pd/_mm512_mask_extloadunpackhi_pd

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

構文

マスクなし

extern __m512d __cdecl _mm512_extloadunpackhi_pd(__m512d v1_old, void const* mt, _MM_UPCONV_PD_ENUM conv, int hint);

マスク付き

extern __m512d __cdecl _mm512_mask_extloadunpackhi_pd(__m512d v1_old, __mmask8 k1, void const* mt, _MM_UPCONV_PD_ENUM conv, int hint);

引数

v1_old

デスティネーション・ベクトルの初期値を含むソースベクトル

k1

書き込みマスク

mt

ロード元のメモリーアドレス

mt

ロード元のメモリーアドレス

conv

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

  • _MM_UPCONV_PD_NONE - 変換なし

hint

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

  • _MM_HINT_NONE = 0
  • _MM_HINT_NT = 1 (ロードは非テンポラル)

説明

要素がアライメントされたアドレス (mt - 64) で始まる、バイト/ワード/ダブルワード・ストリームの 64 バイトでアライメントされた上位の部分がロード、変換、拡張され、書き込みマスクがセットされている要素がダブルワードの結果ベクトルに格納されます。ダブルワード・ベクトルの初期値は v1_old ベクトルからコピーされます。 各ダブルワードは、結果ベクトルの対応するダブルワードにのみマップされ、結果ベクトルの書き込みマスクがセットされている要素はスキップされるため、書き込みマスクでセットされているビットの数が変換したダブルワード・ストリームの長さになります。

この関数は、ストリーム中の (mt - 64) 以降の、64 バイトでアライメントされた最初のアドレス、またはその後にある (つまり、現在の実装では、メモリーストリームの上位のキャッシュラインにある) 変換したダブルワードを転送します (存在する場合)。 ストリームのダブルワードにマップしない結果ベクトルの要素は変更されません (v1_old から取得されます)。

戻り値

ロード操作の結果。