インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応するインテル® AVX-512 命令 |
---|---|---|
_mm512_mask_compress_pd、 _mm512_maskz_compress_pd |
アクティブな float32 要素を連続してストアします。 |
VCOMPRESSPD |
_mm512_mask_compress_ps、 _mm512_maskz_compress_ps |
アクティブな float64 要素を連続してストアします。 |
VCOMPRESSPS |
_mm512_mask_compress_epi32、 _mm512_maskz_compress_epi32、 _mm512_mask_compressstoreu_epi32 |
アクティブな int32 要素を連続してストアします。 |
VPCOMPRESSD |
_mm512_mask_compress_epi64、 _mm512_maskz_compress_epi64 |
アクティブな int64 要素を連続してストアします。 |
VPCOMPRESSQ |
変数 | 定義 |
---|---|
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
src | 書き込みマスクの結果に応じて使用されるソース要素 |
base_addr | ロード/ストア操作を開始するメモリーのベースアドレスへのポインター |
_mm512_mask_compress_pd
extern __m512d __cdecl _mm512_mask_compress_pd(__m512d a, __mmask8 k, __m512d src);
a のアクティブな float64 要素 (書き込みマスク k の対応するビットがセットされている要素) をデスティネーションに連続して格納し、残りの要素を src からコピーします。
_mm512_maskz_compress_pd
extern __m512d __cdecl _mm512_maskz_compress_pd(__mmask8 k, __m512d a);
a のアクティブな float64 要素 (ゼロマスク k の対応するビットがセットされている要素) をデスティネーションに連続して格納し、残りの要素を 0 に設定します。
_mm512_mask_compress_ps
extern __m512 __cdecl _mm512_mask_compress_ps(__m512 a, __mmask16 k, __m512 src);
a のアクティブな float32 要素 (書き込みマスク k の対応するビットがセットされている要素) をデスティネーションに連続して格納し、残りの要素を src からコピーします。
_mm512_maskz_compress_ps
extern __m512 __cdecl _mm512_maskz_compress_ps(__mmask16 k, __m512 a);
a のアクティブな float32 要素 (ゼロマスク k の対応するビットがセットされている要素) をデスティネーションに連続して格納し、残りの要素を 0 に設定します。
_mm512_mask_compressstoreu_pd
extern void __cdecl _mm512_mask_compressstoreu_pd(void* base_addr, __mmask8 k, __m512d a);
a のアクティブな float64 要素 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に格納します。
_mm512_mask_compressstoreu_ps
extern void __cdecl _mm512_mask_compressstoreu_ps(void* base_addr, __mmask16 k, __m512 a);
a のアクティブな float32 要素 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に格納します。
_mm512_mask_compress_epi32
extern __m512i __cdecl _mm512_mask_compress_epi32(__m512i a, __mmask16 k, __m512i src);
a のアクティブな int32 要素 (書き込みマスク k の対応するビットがセットされている要素) をデスティネーションに連続して格納し、残りの要素を src からコピーします。
_mm512_maskz_compress_epi32
extern __m512i __cdecl _mm512_maskz_compress_epi32(__mmask16 k, __m512i a);
a のアクティブな int32 要素 (ゼロマスク k の対応するビットがセットされている要素) をデスティネーションに連続して格納し、残りの要素を 0 に設定します。
_mm512_mask_compress_epi64
extern __m512i __cdecl _mm512_mask_compress_epi64(__m512i a, __mmask8 k, __m512i src);
a のアクティブな int64 要素 (書き込みマスク k の対応するビットがセットされている要素) をデスティネーションに連続して格納し、残りの要素を src からコピーします。
_mm512_maskz_compress_epi64
extern __m512i __cdecl _mm512_maskz_compress_epi64(__mmask8 k, __m512i a);
a のアクティブな int64 要素 (ゼロマスク k の対応するビットがセットされている要素) をデスティネーションに連続して格納し、残りの要素を 0 に設定します。
_mm512_mask_compressstoreu_epi32
extern void __cdecl _mm512_mask_compressstoreu_epi32(void* base_addr, __mmask16 k, __m512i a);
a のアクティブな int32 要素 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に格納します。
_mm512_mask_compressstoreu_epi64
extern void __cdecl _mm512_mask_compressstoreu_epi64(void* base_addr, __mmask8 k, __m512i a);
a のアクティブな int64 要素 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に格納します。