インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応するインテル® AVX-512 命令 |
---|---|---|
_mm512_scalef_pd、 _mm512_mask_scalef_pd、 _mm512_maskz_scalef_pd _mm512_scalef_round_pd、 _mm512_mask_scalef_round_pd、 _mm512_maskz_scalef_round_pd |
パックド float64 値を float64 値でスケーリングします。 |
VSCALEFPD |
_mm512_scalef_ps、 _mm512_mask_scalef_ps、 _mm512_maskz_scalef_ps _mm512_scalef_round_ps、 _mm512_mask_scalef_round_ps、 _mm512_maskz_scalef_round_ps |
パックド float32 値を float32 値でスケーリングします。 |
VSCALEFSD |
_mm_scalef_sd、 _mm_mask_scalef_sd、 _mm_maskz_scalef_sd _mm_scalef_round_sd、 _mm_mask_scalef_round_sd、 _mm_maskz_scalef_round_sd |
スカラー float64 値を float64 値でスケーリングします。 |
VSCALEFPS |
_mm_scalef_round_ss、 _mm_mask_scalef_round_ss、 _mm_maskz_scalef_round_ss _mm_scalef_ss、 _mm_mask_scalef_ss、 _mm_maskz_scalef_ss |
スカラー float32 値を float32 値でスケーリングします。 |
VSCALEFSS |
_mm512_roundscale_pd、 _mm512_mask_roundscale_pd、 _mm512_maskz_roundscale_pd |
パックド float64 値を float64 値でスケーリングします。 |
VRNDSCALEPD |
_mm512_roundscale_ps、 _mm512_mask_roundscale_ps、 _mm512_maskz_roundscale_ps |
パックド float32 値を float32 値でスケーリングします。 |
VRNDSCALEPS |
_mm_roundscale_sd、 _mm_mask_roundscale_sd、 _mm_maskz_roundscale_sd _mm_roundscale_round_sd、 _mm_mask_roundscale_round_sd、 _mm_maskz_roundscale_round_sd |
スカラー float64 値を float64 値でスケーリングします。 |
VRNDSCALESD |
_mm_roundscale_ss、 _mm_mask_roundscale_ss、 _mm_maskz_roundscale_ss _mm_roundscale_round_ss、 _mm_mask_roundscale_round_ss、 _mm_maskz_roundscale_round_ss |
スカラー float32 値を float32 値でスケーリングします。 |
VRNDSCALE |
変数 | 定義 |
---|---|
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
b | 2 つ目のソースベクトルの要素 |
src | 書き込みマスクの結果に応じて使用されるソース要素 |
round | 丸め制御値。次のいずれかになります (sae によりすべての例外フラグが抑止されます)。
|
imm | デスティネーションのオフセットを指定する 8 ビットの即値 |
_mm512_roundscale_pd
extern __m512d __cdecl _mm512_roundscale_pd(__m512d a, int imm);
a のパックド float64 要素を imm で指定した小数の桁数に変換し、結果を格納します。
_mm512_mask_roundscale_pd
extern __m512d __cdecl _mm512_mask_roundscale_pd(__m512d src, __mmask8 k, __m512d a, int imm);
a のパックド float64 要素を imm で指定した小数の桁数に変換し、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_roundscale_pd
extern __m512d __cdecl _mm512_maskz_roundscale_pd(__mmask8 k, __m512d a, int imm);
a のパックド float64 要素を imm で指定した小数の桁数に変換し、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_roundscale_ps
extern __m512 __cdecl _mm512_roundscale_ps(__m512 a, int imm);
a のパックド float32 要素を imm で指定した小数の桁数に変換し、結果を格納します。
_mm512_mask_roundscale_ps
extern __m512 __cdecl _mm512_mask_roundscale_ps(__m512 src, __mmask16 k, __m512 a, int imm);
a のパックド float32 要素を imm で指定した小数の桁数に変換し、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_roundscale_ps
extern __m512 __cdecl _mm512_maskz_roundscale_ps(__mmask16 k, __m512 a, int imm);
a のパックド float32 要素を imm で指定した小数の桁数に変換し、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm_roundscale_round_sd
extern __m128d __cdecl _mm_roundscale_round_sd(__m128d a, __m128d b, const int imm, const int round);
a の下位 float64 要素を imm で指定した小数の桁数に丸め、結果をデスティネーションの下位要素に格納し、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_mask_roundscale_round_sd
extern __m128d __cdecl _mm_mask_roundscale_round_sd(__m128d src, __mmask8 k, __m128d a, __m128d b, const int imm, const int round);
a の下位 float64 要素を imm で指定した小数の桁数に丸め、書き込みマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_maskz_roundscale_round_sd
extern __m128d __cdecl _mm_maskz_roundscale_round_sd(__mmask8 k, __m128d a, __m128d b, const int imm, const int round);
a の下位 float64 要素を imm で指定した小数の桁数に丸め、ゼロマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_roundscale_sd
extern __m128d __cdecl _mm_roundscale_sd(__m128d a, __m128d b, const int imm);
a の下位 float64 要素を imm で指定した小数の桁数に丸め、結果をデスティネーションの下位要素に格納し、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_mask_roundscale_sd
extern __m128d __cdecl _mm_mask_roundscale_sd(__m128d old, __mmask8 k, __m128d a, __m128d b, const int imm);
a の下位 float64 要素を imm で指定した小数の桁数に丸め、書き込みマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_maskz_roundscale_sd
extern __m128d __cdecl _mm_maskz_roundscale_sd(__mmask8 k, __m128d a, __m128d b, const int imm);
a の下位 float64 要素を imm で指定した小数の桁数に丸め、ゼロマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_roundscale_round_ss
extern __m128 __cdecl _mm_roundscale_round_ss(__m128 a, __m128 b, const int imm, const int round);
a の下位 float32 要素を imm で指定した小数の桁数に丸め、結果をデスティネーションの下位要素に格納し、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_mask_roundscale_round_ss
extern __m128 __cdecl _mm_mask_roundscale_round_ss(__m128 src, __mmask8 k, __m128 a, __m128 b, const int imm, const int round);
a の下位 float32 要素を imm で指定した小数の桁数に丸め、書き込みマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_maskz_roundscale_round_ss
extern __m128 __cdecl _mm_maskz_roundscale_round_ss(__mmask8 k, __m128 a, __m128 b, const int imm, const int round);
a の下位 float32 要素を imm で指定した小数の桁数に丸め、ゼロマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_roundscale_ss
extern __m128 __cdecl _mm_roundscale_ss(__m128 a, __m128 b, const int imm);
a の下位 float32 要素を imm で指定した小数の桁数に丸め、結果をデスティネーションの下位要素に格納し、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_mask_roundscale_ss
extern __m128 __cdecl _mm_mask_roundscale_ss(__m128 src, __mmask8 k, __m128 a, __m128 b, const int imm);
a の下位 float32 要素を imm で指定した小数の桁数に丸め、書き込みマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_maskz_roundscale_ss
extern __m128 __cdecl _mm_maskz_roundscale_ss(__mmask8 k, __m128 a, __m128 b, const int imm);
a の下位 float32 要素を imm で指定した小数の桁数に丸め、ゼロマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm512_scalef_pd
extern __m512d __cdecl _mm512_scalef_pd(__m512d a, __m512d b);
ソース a のパックド float64 要素に 2b を掛けてスケーリングし、結果を格納します。
_mm512_mask_scalef_pd
extern __m512d __cdecl _mm512_mask_scalef_pd(__m512d src, __mmask8 k, __m512d a, __m512d b);
ソース a のパックド float64 要素に 2b を掛けてスケーリングし、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_scalef_pd
extern __m512d __cdecl _mm512_maskz_scalef_pd(__mmask8 k, __m512d a, __m512d b);
ソース a のパックド float64 要素に 2b を掛けてスケーリングし、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_scalef_round_pd
extern __m512d __cdecl _mm512_scalef_round_pd(__m512d a, __m512d b, int round);
ソース a の丸めたパックド float64 要素に 2b を掛けてスケーリングし、結果を格納します。
_mm512_mask_scalef_round_pd
extern __m512d __cdecl _mm512_mask_scalef_round_pd(__m512d src, __mmask8 k, __m512d a, __m512d b, int round);
ソース a の丸めたパックド float64 要素に 2b を掛けてスケーリングし、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_scalef_round_pd
extern __m512d __cdecl _mm512_maskz_scalef_round_pd(__mmask8 k, __m512d a, __m512d b, int round);
ソース a の丸めたパックド float64 要素に 2b を掛けてスケーリングし、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_scalef_ps
extern __m512 __cdecl _mm512_scalef_ps(__m512 a, __m512 b);
ソース a のパックド float32 要素に 2b を掛けてスケーリングし、結果を格納します。
_mm512_mask_scalef_ps
extern __m512 __cdecl _mm512_mask_scalef_ps(__m512 src, __mmask16 k, __m512 a, __m512 b);
ソース a のパックド float32 要素に 2b を掛けてスケーリングし、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_scalef_ps
extern __m512 __cdecl _mm512_maskz_scalef_ps(__mmask16 k, __m512 a, __m512 b);
ソース a のパックド単精度 (64 ビット) 浮動小数点要素に 2b を掛けてスケーリングし、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_scalef_round_ps
extern __m512 __cdecl _mm512_scalef_round_ps(__m512 a, __m512 b, int round);
ソース a の丸めたパックド単精度 (64 ビット) 浮動小数点要素に 2b を掛けてスケーリングし、結果を格納します。
_mm512_mask_scalef_round_ps
extern __m512 __cdecl _mm512_mask_scalef_round_ps(__m512 src, __mmask16 k, __m512 a, __m512 b, int round);
ソース a の丸めたパックド単精度 (64 ビット) 浮動小数点要素に 2b を掛けてスケーリングし、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_scalef_round_ps
extern __m512 __cdecl _mm512_maskz_scalef_round_ps(__mmask16 k, __m512 a, __m512 b, int round);
ソース a の丸めたパックド単精度 (64 ビット) 浮動小数点要素に 2b を掛けてスケーリングし、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm_scalef_round_sd
extern __m128d __cdecl _mm_scalef_round_sd(__m128d a, __m128d b, int round);
ソース a の丸めたスカラー float64 要素に 2b を掛けてスケーリングし、結果をデスティネーションの下位要素に格納し、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_mask_scalef_round_sd
extern __m128d __cdecl _mm_mask_scalef_round_sd(__m128d src, __mmask8 k, __m128d a, __m128d b, int round);
ソース a の丸めたスカラー float64 要素に 2b を掛けてスケーリングし、書き込みマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_maskz_scalef_round_sd
extern __m128d __cdecl _mm_maskz_scalef_round_sd(__mmask8 k, __m128d a, __m128d b, int round);
ソース a の丸めたスカラー float64 要素に 2b を掛けてスケーリングし、ゼロマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_scalef_sd
extern __m128d __cdecl _mm_scalef_sd(__m128d a, __m128d b);
b の値を使用してソース a のスカラー float64 要素をスケーリングし、結果をデスティネーションの下位要素に格納し、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_mask_scalef_sd
extern __m128d __cdecl _mm_mask_scalef_sd(__m128d src, __mmask8 k, __m128d a, __m128d b);
b の値を使用してソース a のスカラー float64 要素をスケーリングし、書き込みマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_maskz_scalef_sd
extern __m128d __cdecl _mm_maskz_scalef_sd(__mmask8 k, __m128d a, __m128d b);
b の値を使用してソース a のスカラー float64 要素をスケーリングし、ゼロマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_scalef_round_ss
extern __m128 __cdecl _mm_scalef_round_ss(__m128 a, __m128 b, int round);
ソース a の丸めたスカラー float32 要素に 2b を掛けてスケーリングし、結果をデスティネーションの下位要素に格納し、b の上位要素をデスティネーションの上位要素にコピーします。
_mm_mask_scalef_round_ss
extern __m128 __cdecl _mm_mask_scalef_round_ss(__m128 src, __mmask8 k, __m128 a, __m128 b, int round);
ソース a の丸めたスカラー float32 要素に 2b を掛けてスケーリングし、書き込みマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_maskz_scalef_round_ss
extern __m128 __cdecl _mm_maskz_scalef_round_ss(__mmask8 k, __m128 a, __m128 b, int round);
ソース a の丸めたスカラー float32 要素に 2b を掛けてスケーリングし、ゼロマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_scalef_ss
extern __m128 __cdecl _mm_scalef_ss(__m128 a, __m128 b);
b の値を使用してソース a のスカラー float32 要素をスケーリングし、結果をデスティネーションの下位要素に格納し、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_mask_scalef_ss
extern __m128 __cdecl _mm_mask_scalef_ss(__m128 src, __mmask8 k, __m128 a, __m128 b);
b の値を使用してソース a のスカラー float32 要素をスケーリングし、書き込みマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は src の要素がコピーされます)、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。
_mm_maskz_scalef_ss
extern __m128 __cdecl _mm_maskz_scalef_ss(__mmask8 k, __m128 a, __m128 b);
b の値を使用してソース a のスカラー float32 要素をスケーリングし、ゼロマスク k を使用して結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、b の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。