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

圧縮操作の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、実際にヘッダーをコードにインクルードする場合は、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 に格納します。