インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応するインテル® AVX-512 命令 |
---|---|---|
_mm512_max_round_pd、 _mm512_mask_max_round_pd、 _mm512_maskz_max_round_pd _mm512_max_pd、 _mm512_mask_max_pd、 _mm512_maskz_max_pd |
丸めた float64 値の最大値を計算します。 |
VMAXPD |
_mm512_max_round_ps、 _mm512_mask_max_round_ps、 _mm512_maskz_max_round_ps _mm512_max_ps、 _mm512_mask_max_ps、 _mm512_maskz_max_ps |
丸めた float32 値の最大値を計算します。 |
VMAXPS |
_mm_mask_max_sd、 _mm_maskz_max_sd _mm_max_round_sd、 _mm_mask_max_round_sd、 _mm_maskz_max_round_sd |
スカラー float64 値の最大値を計算します。 |
VMAXSD |
_mm_mask_max_ss、 _mm_maskz_max_ss _mm_max_round_ss、 _mm_mask_max_round_ss、 _mm_maskz_max_round_ss |
スカラー float32 値の最大値を計算します。 |
VMAXSS |
_mm512_min_pd、 _mm512_mask_min_pd、 _mm512_maskz_min_pd _mm512_min_round_pd、 _mm512_mask_min_round_pd、 _mm512_maskz_min_round_pd |
パックド float64 値の最小値を計算します。 |
VMINPD |
_mm512_min_ps、 _mm512_mask_min_ps、 _mm512_maskz_min_ps _mm512_min_round_ps、 _mm512_mask_min_round_ps、 _mm512_maskz_min_round_ps |
パックド float32 値の最小値を計算します。 |
VMINPS |
_mm_mask_min_sd、 _mm_maskz_min_sd _mm_min_round_sd、 _mm_mask_min_round_sd、 _mm_maskz_min_round_sd |
スカラー float64 値の最小値を計算します。 |
VMINSD |
_mm_mask_min_ss、 _mm_maskz_min_ss _mm_min_round_ss、 _mm_mask_min_round_ss、 _mm_maskz_min_round_ss |
スカラー float32 値の最小値を計算します。 |
VMINSS |
変数 | 定義 |
---|---|
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
b | 2 つ目のソースベクトルの要素 |
src | 書き込みマスクの結果に応じて使用されるソース要素 |
round | 丸め制御値。次のいずれかになります (sae によりすべての例外フラグが抑止されます)。
|
_mm512_max_pd
extern __m512d __cdecl _mm512_max_pd(__m512d a, __m512d b);
a と b のパックド float64 要素を比較し、パックド最大値を格納します。
_mm512_mask_max_pd
extern __m512d __cdecl _mm512_mask_max_pd(__m512d src, __mmask8 k, __m512d a, __m512d b);
a と b のパックド float64 要素を比較し、書き込みマスク k を使用してパックド最大値を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_max_pd
extern __m512d __cdecl _mm512_maskz_max_pd(__mmask8 k, __m512d a, __m512d b);
a と b のパックド float64 要素を比較し、ゼロマスク k を使用してパックド最大値を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_max_round_pd
extern __m512d __cdecl _mm512_max_round_pd(__m512d a, __m512d b, int round);
a と b のパックド float64 要素を比較し、パックド最大値を格納します。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_mask_max_round_pd
extern __m512d __cdecl _mm512_mask_max_round_pd(__m512d src, __mmask8 k, __m512d a, __m512d b, int round);
a と b のパックド float64 要素を比較し、書き込みマスク k を使用してパックド最大値を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_maskz_max_round_pd
extern __m512d __cdecl _mm512_maskz_max_round_pd(__mmask8 k, __m512d a, __m512d b, int round);
a と b のパックド float64 要素を比較し、ゼロマスク k を使用してパックド最大値を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_max_ps
extern __m512 __cdecl _mm512_max_ps(__m512 a, __m512 b);
a と b のパックド float32 要素を比較し、パックド最大値を格納します。
_mm512_mask_max_ps
extern __m512 __cdecl _mm512_mask_max_ps(__m512 src, __mmask16 k, __m512 a, __m512 b);
a と b のパックド float32 要素を比較し、書き込みマスク k を使用してパックド最大値を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_max_ps
extern __m512 __cdecl _mm512_maskz_max_ps(__mmask16 k, __m512 a, __m512 b);
a と b のパックド float32 要素を比較し、ゼロマスク k を使用してパックド最大値を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_max_round_ps
extern __m512 __cdecl _mm512_max_round_ps(__m512 a, __m512 b, int round);
a と b のパックド float32 要素を比較し、パックド最大値を格納します。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_mask_max_round_ps
extern __m512 __cdecl _mm512_mask_max_round_ps(__m512 src, __mmask16 k, __m512 a, __m512 b, int round);
a と b のパックド float32 要素を比較し、書き込みマスク k を使用してパックド最大値を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_maskz_max_round_ps
extern __m512 __cdecl _mm512_maskz_max_round_ps(__mmask16 k, __m512 a, __m512 b, int round);
a と b のパックド float32 要素を比較し、ゼロマスク k を使用してパックド最大値を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_mask_max_sd
extern __m128d __cdecl _mm_mask_max_sd(__m128d src, __mmask8 k, __m128d a, __m128d b);
a と b の下位 float64 を比較し、書き込みマスク k を使用して最大値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。
_mm_maskz_max_sd
extern __m128d __cdecl _mm_maskz_max_sd(__mmask8 k, __m128d a, __m128d b);
a と b の下位 float64 を比較し、ゼロマスク k を使用して最大値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。
_mm_max_round_sd
extern __m128d __cdecl _mm_max_round_sd(__m128d a, __m128d b, int round);
a と b の下位 float64 を比較し、最大値をデスティネーションの下位要素に格納し、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_mask_max_round_sd
extern __m128d __cdecl _mm_mask_max_round_sd(__m128d src, __mmask8 k, __m128d a, __m128d b, int round);
a と b の下位 float64 を比較し、書き込みマスク k を使用して最大値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_maskz_max_round_sd
extern __m128d __cdecl _mm_maskz_max_round_sd(__mmask8 k, __m128d a, __m128d b, int round);
a と b の下位 float64 を比較し、ゼロマスク k を使用して最大値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_mask_max_ss
extern __m128 __cdecl _mm_mask_max_ss(__m128 src, __mmask8 k, __m128 a, __m128 b);
a と b の下位 float32 を比較し、書き込みマスク k を使用して最大値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。
_mm_maskz_max_ss
extern __m128 __cdecl _mm_maskz_max_ss(__mmask8 k, __m128 a, __m128 b);
a と b の下位 float32 を比較し、ゼロマスク k を使用して最大値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。
_mm_max_round_ss
extern __m128 __cdecl _mm_max_round_ss(__m128 a, __m128 b, int round);
a と b の下位 float32 を比較し、最大値をデスティネーションの下位要素に格納し、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_mask_max_round_ss
extern __m128 __cdecl _mm_mask_max_round_ss(__m128 src, __mmask8 k, __m128 a, __m128 b, int round);
a と b の下位 float32 を比較し、書き込みマスク k を使用して最大値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_maskz_max_round_ss
extern __m128 __cdecl _mm_maskz_max_round_ss(__mmask8 k, __m128 a, __m128 b, int round);
a と b の下位 float32 を比較し、ゼロマスク k を使用して最大値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_min_pd
extern __m512d __cdecl _mm512_min_pd(__m512d a, __m512d b);
a と b のパックド float64 要素を比較し、パックド最小値を格納します。
_mm512_mask_min_pd
extern __m512d __cdecl _mm512_mask_min_pd(__m512d src, __mmask8 k, __m512d a,__m512d b);
a と b のパックド float64 要素を比較し、書き込みマスク k を使用してパックド最小値を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_min_pd
extern __m512d __cdecl _mm512_maskz_min_pd(__mmask8 k, __m512d a, __m512d b);
a と b のパックド float64 要素を比較し、ゼロマスク k を使用してパックド最小値を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_min_round_pd
extern __m512d __cdecl _mm512_min_round_pd(__m512d a, __m512d b, int round);
a と b のパックド float64 要素を比較し、パックド最小値を格納します。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_mask_min_round_pd
extern __m512d __cdecl _mm512_mask_min_round_pd(__m512d src, __mmask8 k, __m512d a, __m512d b, int round);
a と b のパックド float64 要素を比較し、書き込みマスク k を使用してパックド最小値を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_maskz_min_round_pd
extern __m512d __cdecl _mm512_maskz_min_round_pd(__mmask8 k, __m512d a, __m512d b, int round);
a と b のパックド float64 要素を比較し、ゼロマスク k を使用してパックド最小値を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_min_ps
extern __m512 __cdecl _mm512_min_ps(__m512 a, __m512 b);
a と b のパックド float32 要素を比較し、パックド最小値を格納します。
_mm512_mask_min_ps
extern __m512 __cdecl _mm512_mask_min_ps(__m512 src, __mmask16 k, __m512 a, __m512 b);
a と b のパックド float32 要素を比較し、書き込みマスク k を使用してパックド最小値を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_min_ps
extern __m512 __cdecl _mm512_maskz_min_ps(__mmask16 k, __m512 a, __m512 b;
a と b のパックド float32 要素を比較し、ゼロマスク k を使用してパックド最小値を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_min_round_ps
extern __m512 __cdecl _mm512_min_round_ps( __m512 a, __m512 b, int round);
a と b のパックド float32 要素を比較し、パックド最小値を格納します。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_mask_min_round_ps
extern __m512 __cdecl _mm512_mask_min_round_ps(__m512 src, __mmask16 k, __m512 a, __m512 b, int round);
a と b のパックド float32 要素を比較し、書き込みマスク k を使用してパックド最小値を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_maskz_min_round_ps
extern __m512 __cdecl _mm512_maskz_min_round_ps(__mmask16 k, __m512 a, __m512 b, int round);
a と b のパックド float32 要素を比較し、ゼロマスク k を使用してパックド最小値を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_mask_min_sd
extern __m128d __cdecl _mm_mask_min_sd(__m128d src, __mmask8 k, __m128d a, __m128d b);
a と b の下位 float64 を比較し、書き込みマスク k を使用して最小値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。
_mm_maskz_min_sd
extern __m128d __cdecl _mm_maskz_min_sd(__mmask8 k, __m128d a, __m128d b);
a と b の下位 float64 を比較し、ゼロマスク k を使用して最小値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。
_mm_min_round_sd
extern __m128d __cdecl _mm_min_round_sd(__m128d a, __m128d b, int round);
a と b の下位 float64 を比較し、最小値をデスティネーションの下位要素に格納し、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_mask_min_round_sd
extern __m128d __cdecl _mm_mask_min_round_sd(__m128d src, __mmask8 k, __m128d a, __m128d b, int round);
a と b の下位 float64 を比較し、書き込みマスク k を使用して最小値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_maskz_min_round_sd
extern __m128d __cdecl _mm_maskz_min_round_sd(__mmask8 k, __m128d a, __m128d b, int round);
a と b の下位 float64 を比較し、ゼロマスク k を使用して最小値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_mask_min_ss
extern __m128 __cdecl _mm_mask_min_ss(__m128 src, __mmask8 k, __m128 a, __m128 b);
a と b の下位 float32 を比較し、書き込みマスク k を使用して最小値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。
_mm_maskz_min_ss
extern __m128 __cdecl _mm_maskz_min_ss(__mmask8 k, __m128 a, __m128 b);
a と b の下位 float32 を比較し、ゼロマスク k を使用して最小値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。
_mm_min_round_ss
extern __m128 __cdecl _mm_min_round_ss(__m128 a, __m128 b, int round);
a と b の下位 float32 を比較し、最小値をデスティネーションの下位要素に格納し、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_mask_min_round_ss
extern __m128 __cdecl _mm_mask_min_round_ss(__m128 src, __mmask8 k, __m128 a, __m128 b, int round);
a と b の下位 float32 を比較し、書き込みマスク k を使用して最小値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_maskz_min_round_ss
extern __m128 __cdecl _mm_maskz_min_round_ss(__mmask8 k, __m128 a, __m128 b, int round);
a と b の下位 float32 を比較し、ゼロマスク k を使用して最小値をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。