インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応するインテル® AVX-512 命令 |
---|---|---|
_mm512_reduce_add_epi32、 _mm512_mask_reduce_add_epi32 |
加算により int32 要素をレデュースします。 |
なし |
_mm512_reduce_add_epi64、 _mm512_mask_reduce_add_epi64 |
加算により int64 要素をレデュースします。 |
なし |
_mm512_reduce_mul_epi32、 _mm512_mask_reduce_mul_epi32 |
乗算により int32 要素をレデュースします。 |
なし |
_mm512_reduce_mul_epi64、 _mm512_mask_reduce_mul_epi64 |
乗算により int64 要素をレデュースします。 |
なし |
_mm512_reduce_min_epi32、 _mm512_mask_reduce_min_epi32 |
最小値を特定する操作により符号付き int32 要素をレデュースします。 |
なし |
_mm512_reduce_min_epi64、 _mm512_mask_reduce_min_epi64 |
最小値を特定する操作により符号付き int64 要素をレデュースします。 |
なし |
_mm512_reduce_min_epu32、 _mm512_mask_reduce_min_epu32 |
最小値を特定する操作により符号なし int32 要素をレデュースします。 |
なし |
_mm512_reduce_min_epu64、 _mm512_mask_reduce_min_epu64 |
最小値を特定する操作により符号なし int64 要素をレデュースします。 |
なし |
_mm512_reduce_max_epi32、 _mm512_mask_reduce_max_epi32 |
最大値を特定する操作により符号付き int32 要素をレデュースします。 |
なし |
_mm512_reduce_max_epi64、 _mm512_mask_reduce_max_epi64 |
最大値を特定する操作により符号付き int64 要素をレデュースします。 |
なし |
_mm512_reduce_max_epu32、 _mm512_mask_reduce_max_epu32 |
最大値を特定する操作により符号なし int32 要素をレデュースします。 |
なし |
_mm512_reduce_max_epu64、 _mm512_mask_reduce_max_epu64 |
最大値を特定する操作により符号なし int64 要素をレデュースします。 |
なし |
_mm512_reduce_or_epi32、 _mm512_mask_reduce_or_epi32 |
ビット単位の OR (論理和) 演算により int32 要素をレデュースします。 |
なし |
_mm512_reduce_or_epi64、 _mm512_mask_reduce_or_epi64 |
ビット単位の OR (論理和) 演算により int64 要素をレデュースします。 |
なし |
_mm512_reduce_and_epi32、 _mm512_mask_reduce_and_epi32 |
ビット単位の AND (論理積) 演算により int32 要素をレデュースします。 |
なし |
_mm512_reduce_and_epi64、 _mm512_mask_reduce_and_epi64 |
ビット単位の AND (論理積) 演算により int64 要素をレデュースします。 |
なし |
変数 | 定義 |
---|---|
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
src | 書き込みマスクの結果に応じて使用されるソース要素 |
_mm512_reduce_and_epi32
extern int __cdecl _mm512_reduce_and_epi32(__m512i a);
ビット単位の AND (論理積) 演算により a のパックド int32 要素をレデュースします。
a のすべての要素のビット単位の AND (論理積) を返します。
_mm512_mask_reduce_and_epi32
extern int __cdecl _mm512_mask_reduce_and_epi32(__mmask16 k, __m512i a);
マスク k を使用して、ビット単位の AND (論理積) 演算により a のパックド int32 要素をレデュースします。
a のすべてのアクティブな要素のビット単位の AND (論理積) を返します。
_mm512_reduce_and_epi64
extern __int64 __cdecl _mm512_reduce_and_epi64(__m512i a);
ビット単位の AND (論理積) 演算により a のパックド int64 要素をレデュースします。
a のすべての要素のビット単位の AND (論理積) を返します。
_mm512_mask_reduce_and_epi64
extern __int64 __cdecl _mm512_mask_reduce_and_epi64(__mmask8 k, __m512i a);
マスク k を使用して、ビット単位の AND (論理積) 演算により a のパックド int64 要素をレデュースします。
ベクトルマスク k の対応するビットが設定されているソースレジスターの要素のみ計算に使用されます。k の対応するビットがクリアされている a の要素は、結果ベクトルにそのままコピーされます。
a のすべてのアクティブな要素のビット単位の AND (論理積) を返します。
_mm512_reduce_add_epi32
extern int __cdecl _mm512_reduce_add_epi32(__m512i a);
加算により a のパックド int32 要素をレデュースします。
a のすべての要素の合計を返します。
_mm512_mask_reduce_add_epi32
extern int __cdecl _mm512_mask_reduce_add_epi32(__mmask16 k, __m512i a);
マスク k を使用して、加算により a のパックド int32 要素をレデュースします。
a のすべてのアクティブな要素の合計を返します。
_mm512_reduce_add_epi64
extern __int64 __cdecl _mm512_reduce_add_epi64(__m512i a);
加算により a のパックド int64 要素をレデュースします。
a のすべての要素の合計を返します。
_mm512_mask_reduce_add_epi64
extern __int64 __cdecl _mm512_mask_reduce_add_epi64(__mmask8 k, __m512i a);
マスク k を使用して、加算により a のパックド int64 要素をレデュースします。
ベクトルマスク k の対応するビットが設定されているソースレジスターの要素のみ計算に使用されます。k の対応するビットがクリアされている a の要素は、結果ベクトルにそのままコピーされます。
a のすべてのアクティブな要素の合計を返します。
_mm512_reduce_max_epi32
extern int __cdecl _mm512_reduce_max_epi32(__m512i a);
最大値を特定する操作により a のパックド int32 要素をレデュースします。
a のすべての要素の最大値を返します。
_mm512_mask_reduce_max_epi32
extern int __cdecl _mm512_mask_reduce_max_epi32(__mmask16 k, __m512i a);
マスク k を使用して、最大値を特定する操作により a のパックド int32 要素をレデュースします。
a のすべてのアクティブな要素の最大値を返します。
_mm512_reduce_max_epi64
extern __int64 __cdecl _mm512_reduce_max_epi64(__m512i a);
最大値を特定する操作により a のパックド int64 要素をレデュースします。
a のすべての要素の最大値を返します。
_mm512_mask_reduce_max_epi64
extern __int64 __cdecl _mm512_mask_reduce_max_epi64(__mmask8 k, __m512i a);
マスク k を使用して、最大値を特定する操作により a のパックド int64 要素をレデュースします。
ベクトルマスク k の対応するビットが設定されているソースレジスターの要素のみ計算に使用されます。k の対応するビットがクリアされている a の要素は、結果ベクトルにそのままコピーされます。
a のすべてのアクティブな要素の最大値を返します。
_mm512_reduce_max_epu32
extern unsigned int __cdecl _mm512_reduce_max_epu32(__m512i a);
最大値を特定する操作により a のパックド符号なし int32 要素をレデュースします。
a のすべての要素の最大値を返します。
_mm512_mask_reduce_max_epu32
extern unsigned int __cdecl _mm512_mask_reduce_max_epu32(__mmask16 k, __m512i a);
マスク k を使用して、最大値を特定する操作により a のパックド符号なし int32 要素をレデュースします。
a のすべてのアクティブな要素の最大値を返します。
_mm512_reduce_max_epu64
extern unsigned __int64 __cdecl _mm512_reduce_max_epu64(__m512i a);
最大値を特定する操作により a のパックド符号なし int64 要素をレデュースします。
a のすべての要素の最大値を返します。
_mm512_mask_reduce_max_epu64
extern unsigned __int64 __cdecl _mm512_mask_reduce_max_epu64(__mmask8 k, __m512i a);
マスク k を使用して、最大値を特定する操作により a のパックド符号なし int64 要素をレデュースします。
ベクトルマスク k の対応するビットが設定されているソースレジスターの要素のみ計算に使用されます。k の対応するビットがクリアされている a の要素は、結果ベクトルにそのままコピーされます。
a のすべてのアクティブな要素の最大値を返します。
_mm512_reduce_min_epi32
extern int __cdecl _mm512_reduce_min_epi32(__m512i a);
最小値を特定する操作により a のパックド int32 要素をレデュースします。
a のすべての要素の最小値を返します。
_mm512_mask_reduce_min_epi32
extern int __cdecl _mm512_mask_reduce_min_epi32(__mmask16 k, __m512i a);
マスク k を使用して、最小値を特定する操作により a のパックド int32 要素をレデュースします。
a のすべてのアクティブな要素の最小値を返します。
_mm512_reduce_min_epi64
extern __int64 __cdecl _mm512_reduce_min_epi64(__m512i a);
最小値を特定する操作により a のパックド int64 要素をレデュースします。
a のすべての要素の最小値を返します。
_mm512_mask_reduce_min_epi64
extern __int64 __cdecl _mm512_mask_reduce_min_epi64(__mmask8 k, __m512i a);
マスク k を使用して、最小値を特定する操作により a のパックド int64 要素をレデュースします。
ベクトルマスク k の対応するビットが設定されているソースレジスターの要素のみ計算に使用されます。k の対応するビットがクリアされている a の要素は、結果ベクトルにそのままコピーされます。
a のすべてのアクティブな要素の最小値を返します。
_mm512_reduce_min_epu32
extern unsigned int __cdecl _mm512_reduce_min_epu32(__m512i a);
最小値を特定する操作により a のパックド符号なし int32 要素をレデュースします。
a のすべての要素の最小値を返します。
_mm512_mask_reduce_min_epu32
extern unsigned int __cdecl _mm512_mask_reduce_min_epu32(__mmask16 k, __m512i a);
マスク k を使用して、最小値を特定する操作により a のパックド符号なし int32 要素をレデュースします。
a のすべてのアクティブな要素の最小値を返します。
_mm512_reduce_min_epu64
extern unsigned __int64 __cdecl _mm512_reduce_min_epu64(__m512i a);
最小値を特定する操作により a のパックド符号なし int64 要素をレデュースします。
a のすべての要素の最小値を返します。
_mm512_mask_reduce_min_epu64
extern unsigned __int64 __cdecl _mm512_mask_reduce_min_epu64(__mmask8 k, __m512i a);
マスク k を使用して、最小値を特定する操作により a のパックド符号なし int64 要素をレデュースします。
ベクトルマスク k の対応するビットが設定されているソースレジスターの要素のみ計算に使用されます。k の対応するビットがクリアされている a の要素は、結果ベクトルにそのままコピーされます。
a のすべてのアクティブな要素の最小値を返します。
_mm512_reduce_mul_epi32
extern int __cdecl _mm512_reduce_mul_epi32(__m512i a);
乗算により a のパックド int32 要素をレデュースします。
a のすべての要素の積を返します。
_mm512_mask_reduce_mul_epi32
extern int __cdecl _mm512_mask_reduce_mul_epi32(__mmask16 k, __m512i a);
マスク k を使用して、乗算により a のパックド int32 要素をレデュースします。
a のすべてのアクティブな要素の積を返します。
_mm512_reduce_mul_epi64
extern __int64 __cdecl _mm512_reduce_mul_epi64(__m512i a);
乗算により a のパックド int64 要素をレデュースします。
a のすべての要素の積を返します。
_mm512_mask_reduce_mul_epi64
extern __int64 __cdecl _mm512_mask_reduce_mul_epi64(__mmask8 k, __m512i a);
マスク k を使用して、乗算により a のパックド int64 要素をレデュースします。
ベクトルマスク k の対応するビットが設定されているソースレジスターの要素のみ計算に使用されます。k の対応するビットがクリアされている a の要素は、結果ベクトルにそのままコピーされます。
a のすべてのアクティブな要素の積を返します。
_mm512_reduce_or_epi32
extern int __cdecl _mm512_reduce_or_epi32(__m512i a);
ビット単位の OR (論理和) 演算により a のパックド int32 要素をレデュースします。
a のすべての要素のビット単位の OR (論理和) を返します。
_mm512_mask_reduce_or_epi32
extern int __cdecl _mm512_mask_reduce_or_epi32(__mmask16 k, __m512i a);
マスク k を使用して、ビット単位の OR (論理和) 演算により a のパックド int32 要素をレデュースします。
a のすべてのアクティブな要素のビット単位の OR (論理和) を返します。
_mm512_reduce_or_epi64
extern __int64 __cdecl _mm512_reduce_or_epi64(__m512i a);
ビット単位の OR (論理和) 演算により a のパックド int64 要素をレデュースします。
a のすべての要素のビット単位の OR (論理和) を返します。
_mm512_mask_reduce_or_epi64
extern __int64 __cdecl _mm512_mask_reduce_or_epi64(__mmask8 k, __m512i a);
マスク k を使用して、ビット単位の OR (論理和) 演算により a のパックド int64 要素をレデュースします。
ベクトルマスク k の対応するビットが設定されているソースレジスターの要素のみ計算に使用されます。k の対応するビットがクリアされている a の要素は、結果ベクトルにそのままコピーされます。
a のすべてのアクティブな要素のビット単位の OR (論理和) を返します。