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

FP FMA (Fused Multiply Add) 演算の組込み関数

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


組込み関数名

演算

対応するインテル® AVX-512 命令

_mm512_fmadd_pd_mm512_mask3_fmadd_pd_mm512_mask_fmadd_pd_mm512_maskz_fmadd_pd

_mm512_fmadd_round_pd_mm512_mask3_fmadd_round_pd_mm512_mask_fmadd_round_pd_mm512_maskz_fmadd_round_pd

float64 ベクトル要素の乗算を行った後、結果に float64 ベクトル要素を加算します。

VFMADD132PD

_mm512_fmadd_ps_mm512_mask3_fmadd_ps_mm512_mask_fmadd_ps_mm512_maskz_fmadd_ps

_mm512_fmadd_round_ps_mm512_mask3_fmadd_round_ps_mm512_mask_fmadd_round_ps_mm512_maskz_fmadd_round_ps

float32 ベクトル要素の乗算を行った後、結果に float32 ベクトル要素を加算します。

VFMADD132PS

_mm_mask3_fmadd_sd_mm_mask_fmadd_sd_mm_maskz_fmadd_sd

_mm_mask3_fmadd_round_sd_mm_mask_fmadd_round_sd_mm_maskz_fmadd_round_sd

float64 ベクトル要素の乗算を行った後、結果に float64 ベクトル要素を加算します。

VFMADD132SD

_mm_mask3_fmadd_ss_mm_mask_fmadd_ss_mm_maskz_fmadd_ss

_mm_mask3_fmadd_round_ss_mm_mask_fmadd_round_ss_mm_maskz_fmadd_round_ss

float32 ベクトル要素の乗算を行った後、結果に float32 ベクトル要素を加算します。

VFMADD132SS

_mm512_fmaddsub_pd_mm512_mask3_fmaddsub_pd_mm512_mask_fmaddsub_pd_mm512_maskz_fmaddsub_pd

_mm512_fmaddsub_round_pd_mm512_mask3_fmaddsub_round_pd_mm512_mask_fmaddsub_round_pd_mm512_maskz_fmaddsub_round_pd

float64 ベクトル要素の乗算を行った後、結果の加算および減算を行います。

VFMADDSUB132PD

_mm512_fmaddsub_ps_mm512_mask3_fmaddsub_ps_mm512_mask_fmaddsub_ps_mm512_maskz_fmaddsub_ps

_mm512_fmaddsub_round_ps_mm512_mask3_fmaddsub_round_ps_mm512_mask_fmaddsub_round_ps_mm512_maskz_fmaddsub_round_ps

float32 ベクトル要素の乗算を行った後、結果の加算および減算を行います。

VFMADDSUB132PS

_mm512_fmsub_pd_mm512_mask3_fmsub_pd_mm512_mask_fmsub_pd_mm512_maskz_fmsub_pd

_mm512_fmsub_round_pd_mm512_mask3_fmsub_round_pd_mm512_mask_fmsub_round_pd_mm512_maskz_fmsub_round_pd

パックド float64 ベクトル要素の乗算を行った後、結果から float64 ベクトル要素を減算します。

VFMSUB132PD

_mm512_fmsub_ps_mm512_mask3_fmsub_ps_mm512_mask_fmsub_ps_mm512_maskz_fmsub_ps

_mm512_fmsub_round_ps_mm512_mask3_fmsub_round_ps_mm512_mask_fmsub_round_ps_mm512_maskz_fmsub_round_ps

パックド float32 ベクトル要素の乗算を行った後、結果から float32 ベクトル要素を減算します。

VFMSUB132PS

_mm_mask3_fmsub_sd_mm_mask_fmsub_sd_mm_maskz_fmsub_sd

_mm_mask3_fmsub_round_sd_mm_mask_fmsub_round_sd_mm_maskz_fmsub_round_sd

スカラー float64 ベクトル要素の乗算を行った後、結果から float64 ベクトル要素を減算します。

VFMSUB132SD

_mm_mask3_fmsub_ss_mm_mask_fmsub_ss_mm_maskz_fmsub_ss

_mm_mask3_fmsub_round_ss_mm_mask_fmsub_round_ss_mm_maskz_fmsub_round_ss

スカラー float32 ベクトル要素の乗算を行った後、結果から float32 ベクトル要素を減算します。

VFMSUB132SS

_mm512_fmsubadd_pd_mm512_mask3_fmsubadd_pd_mm512_mask_fmsubadd_pd_mm512_maskz_fmsubadd_pd

_mm512_fmsubadd_round_pd_mm512_mask3_fmsubadd_round_pd_mm512_mask_fmsubadd_round_pd_mm512_maskz_fmsubadd_round_pd

float64 ベクトル要素の乗算を行った後、結果の減算および加算を行います。

VFMSUBADD132PD

_mm512_fmsubadd_ps_mm512_mask3_fmsubadd_ps_mm512_mask_fmsubadd_ps_mm512_maskz_fmsubadd_ps

_mm512_fmsubadd_round_ps_mm512_mask3_fmsubadd_round_ps_mm512_mask_fmsubadd_round_ps_mm512_maskz_fmsubadd_round_ps

float32 ベクトル要素の乗算を行った後、結果の減算および加算を行います。

VFMSUBADD132PS

_mm512_fnmadd_pd_mm512_mask3_fnmadd_pd_mm512_mask_fnmadd_pd_mm512_maskz_fnmadd_pd

_mm512_fnmadd_round_pd_mm512_mask3_fnmadd_round_pd_mm512_mask_fnmadd_round_pd_mm512_maskz_fnmadd_round_pd

パックド float64 ベクトル要素の乗算を行った後、float64 ベクトル要素に符号を反転した結果を加算します。

VFNMADD132PD

_mm512_fnmadd_ps_mm512_mask3_fnmadd_ps_mm512_maskz_fnmadd_ps_mm512_mask_fnmadd_ps

_mm512_fnmadd_round_ps_mm512_mask3_fnmadd_round_ps_mm512_mask_fnmadd_round_ps_mm512_maskz_fnmadd_round_ps

パックド float32 ベクトル要素の乗算を行った後、float32 ベクトル要素に符号を反転した結果を加算します。

VFNMADD132PS

_mm_mask3_fnmadd_round_sd_mm_mask_fnmadd_round_sd_mm_maskz_fnmadd_round_sd

_mm_maskz_fnmadd_sd_mm_mask_fnmadd_sd_mm_mask3_fnmadd_sd

スカラー float64 ベクトル要素の乗算を行った後、float64 ベクトル要素に符号を反転した結果を加算します。

VFNMADD132SD

_mm_mask3_fnmadd_ss_mm_mask_fnmadd_ss_mm_maskz_fnmadd_ss

_mm_mask3_fnmadd_round_ss_mm_mask_fnmadd_round_ss_mm_maskz_fnmadd_round_ss

スカラー float32 ベクトル要素の乗算を行った後、float32 ベクトル要素に符号を反転した結果を加算します。

VFNMADD132SS

_mm512_fnmsub_pd_mm512_mask3_fnmsub_pd_mm512_mask_fnmsub_pd_mm512_maskz_fnmsub_pd

_mm512_fnmsub_round_pd_mm512_mask3_fnmsub_round_pd_mm512_mask_fnmsub_round_pd_mm512_maskz_fnmsub_round_pd

パックド float64 ベクトル要素の乗算を行った後、float64 ベクトル要素から符号を反転した結果を減算します。

VFNMSUB132PD

_mm512_fnmsub_ps_mm512_mask3_fnmsub_ps_mm512_maskz_fnmsub_ps_mm512_mask_fnmsub_ps

_mm512_fnmsub_round_ps_mm512_mask3_fnmsub_round_ps_mm512_maskz_fnmsub_round_ps_mm512_mask_fnmsub_round_ps

パックド float32 ベクトル要素の乗算を行った後、float32 ベクトル要素から符号を反転した結果を減算します。

VFNMSUB132PS

_mm_maskz_fnmsub_round_sd_mm_mask_fnmsub_round_sd_mm_mask3_fnmsub_round_sd

_mm_mask_fnmsub_sd_mm_mask3_fnmsub_sd_mm_maskz_fnmsub_sd

スカラー float64 ベクトル要素の乗算を行った後、float64 ベクトル要素から符号を反転した結果を減算します。

VFNMSUB132SD

_mm_maskz_fnmsub_round_ss_mm_mask_fnmsub_round_ss_mm_mask3_fnmsub_round_ss

_mm_mask_fnmsub_ss_mm_maskz_fnmsub_ss_mm_mask3_fnmsub_ss

スカラー float32 ベクトル要素の乗算を行った後、float32 ベクトル要素から符号を反転した結果を減算します。

VFNMSUB132SS


変数 定義
k

セレクターとして使用される書き込みマスク

a

1 つ目のソースベクトルの要素

b

2 つ目のソースベクトルの要素

src

書き込みマスクの結果に応じて使用されるソース要素

round

丸め制御値。次のいずれかになります (sae によりすべての例外フラグが抑止されます)。

  • _MM_FROUND_TO_NEAREST_INT - 最も近い偶数に丸めます。
  • _MM_FROUND_TO_NEG_INF - 負の無限大に丸めます。
  • _MM_FROUND_TO_POS_INF -正の無限大に丸めます。
  • _MM_FROUND_TO_ZERO - ゼロに丸めます。
  • _MM_FROUND_CUR_DIRECTION - MXCSR レジスターのデフォルトを使用して丸めます。


_mm512_fmadd_pd

extern __m512d __cdecl _mm512_fmadd_pd(__m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に中間結果を加算し、最終結果を格納します。



_mm512_mask_fmadd_pd

extern __m512d __cdecl _mm512_mask_fmadd_pd(__m512d a, __mmask8 k, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmadd_pd

extern __m512d __cdecl _mm512_mask3_fmadd_pd(__m512d a, __m512d b, __m512d c, __mmask8 k);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmadd_pd

extern __m512d __cdecl _mm512_maskz_fmadd_pd(__mmask8 k, __m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に中間結果を加算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmadd_round_pd

extern __m512d __cdecl _mm512_fmadd_round_pd(__m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に中間結果を加算し、最終結果を格納します。



_mm512_mask_fmadd_round_pd

extern __m512d __cdecl _mm512_mask_fmadd_round_pd(__m512d a, __mmask8 k, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmadd_round_pd

extern __m512d __cdecl _mm512_mask3_fmadd_round_pd(__m512d a, __m512d b, __m512d c, __mmask8 k, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmadd_round_pd

extern __m512d __cdecl _mm512_maskz_fmadd_round_pd(__mmask8 k, __m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に中間結果を加算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmadd_round_ps

extern __m512 __cdecl _mm512_fmadd_round_ps(__m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、最終結果を格納します。



_mm512_mask_fmadd_round_ps

extern __m512 __cdecl _mm512_mask_fmadd_round_ps(__m512 a, __mmask16 k, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmadd_round_ps

extern __m512 __cdecl _mm512_mask3_fmadd_round_ps(__m512 a, __m512 b, __m512 c, __mmask16 k, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmadd_round_ps

extern __m512 __cdecl _mm512_maskz_fmadd_round_ps(__mmask16 k, __m512 a, __m512 b, __m512 c, const int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、ゼロマスク k を使用して最終結果 a を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmadd_ps

extern __m512 __cdecl _mm512_fmadd_ps(__m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、最終結果を格納します。



_mm512_mask_fmadd_ps

extern __m512 __cdecl _mm512_mask_fmadd_ps(__m512 a, __mmask16 k, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmadd_ps

extern __m512 __cdecl _mm512_mask3_fmadd_ps(__m512, __m512 b, __m512 c, __mmask16 k);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmadd_ps

extern __m512 __cdecl _mm512_maskz_fmadd_ps(__mmask16 k, __m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmadd_round_ps

extern __m512 __cdecl _mm512_fmadd_round_ps(__m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、最終結果を格納します。



_mm512_mask_fmadd_round_ps

extern __m512 __cdecl _mm512_mask_fmadd_round_ps(__m512 a, __mmask16 k, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmadd_round_ps

extern __m512 __cdecl _mm512_mask3_fmadd_round_ps(__m512 a, __m512 b, __m512 c, __mmask16 k, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmadd_round_ps

extern __m512 __cdecl _mm512_maskz_fmadd_round_ps(__mmask16 k, __m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に中間結果を加算し、ゼロマスク k を使用して最終結果 a を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_fmadd_sd

extern __m128d __cdecl _mm_mask_fmadd_sd(__m128d a, __mmask8 k, __m128d b, __m128d c);

ab の下位 float64 要素の乗算を行った後、c の下位要素に中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fmadd_sd

extern __m128d __cdecl _mm_mask3_fmadd_sd(__m128d a, __m128d b, __m128d c, __mmask8 k);

ab の下位 float64 要素の乗算を行った後、c の下位要素に中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fmadd_sd

extern __m128d __cdecl _mm_maskz_fmadd_sd(__mmask8 k, __m128d a, __m128d b, __m128d c);

ab の下位 float64 要素の乗算を行った後、c の下位要素に中間結果を加算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask_fmadd_round_sd

extern __m128d __cdecl _mm_mask_fmadd_round_sd(__m128d a, __mmask8 k, __m128d b, __m128d c, int round);

ab の下位 float64 要素の乗算を行った後、c の下位要素に中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fmadd_round_sd

extern __m128d __cdecl _mm_mask3_fmadd_round_sd(__m128d a, __m128d b, __m128d c, __mmask8 k, int round);

ab の下位 float64 要素の乗算を行った後、c の下位要素に中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fmadd_round_sd

extern __m128d __cdecl _mm_maskz_fmadd_round_sd(__mmask8 k, __m128d a, __m128d b, __m128d c, int round);

ab の下位 float64 要素の乗算を行った後、c の下位要素に中間結果を加算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask_fmadd_ss

extern __m128 __cdecl _mm_mask_fmadd_ss(__m128 a, __mmask8 k, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、c の下位要素に中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fmadd_ss

extern __m128 __cdecl _mm_mask3_fmadd_ss(__m128 a, __m128 b, __m128 c, __mmask8 k);

ab の下位 float32 要素の乗算を行った後、c の下位要素に中間結果を加算します。書き込みマスク k を使用して最終結果を下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fmadd_ss

extern __m128 __cdecl _mm_maskz_fmadd_ss(__mmask8 k, __m128 a, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、c の下位要素に中間結果を加算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask_fmadd_round_ss

extern __m128 __cdecl _mm_mask_fmadd_round_ss(__m128 a, __mmask8 k, __m128 b, __m128 c, int round);

ab の下位 float32 要素の乗算を行った後、c の下位要素に中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fmadd_round_ss

extern __m128 __cdecl _mm_mask3_fmadd_round_ss(__m128 a, __m128 b, __m128 c, __mmask8 k, int round);

ab の下位 float32 要素の乗算を行った後、c の下位要素に中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fmadd_round_ss

extern __m128 __cdecl _mm_maskz_fmadd_round_ss(__mmask8 k, __m128 a, __m128 b, __m128 c, int round);

ab の下位 float32 要素の乗算を行った後、c の下位要素に中間結果を加算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm512_fmaddsub_pd

extern __m512d __cdecl _mm512_fmaddsub_pd(__m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、最終結果を格納します。



_mm512_mask_fmaddsub_pd

extern __m512d __cdecl _mm512_mask_fmaddsub_pd(__m512d, __mmask8 k, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmaddsub_pd

extern __m512d __cdecl _mm512_mask3_fmaddsub_pd(__m512d a, __m512d k, __m512d b, __mmask8 c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmaddsub_pd

extern __m512d __cdecl _mm512_maskz_fmaddsub_pd(__mmask8 k, __m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmaddsub_round_pd

extern __m512d __cdecl _mm512_fmsubadd_round_pd(__m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、最終結果を格納します。



_mm512_mask_fmaddsub_round_pd

extern __m512d __cdecl _mm512_mask_fmsubadd_round_pd(__m512d a, __mmask8 k, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmaddsub_round_pd

extern __m512d __cdecl _mm512_mask3_fmsubadd_round_pd(__m512d a, __m512d b, __m512d c, __mmask8 k, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmaddsub_round_pd

extern __m512d __cdecl _mm512_maskz_fmsubadd_round_pd(__mmask8 k, __m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmaddsub_ps

extern __m512 __cdecl _mm512_fmaddsub_ps(__m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、最終結果を格納します。



_mm512_mask_fmaddsub_ps

extern __m512 __cdecl _mm512_mask_fmaddsub_ps(__m512 a, __mmask16 k, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmaddsub_ps

extern __m512 __cdecl _mm512_mask3_fmaddsub_ps(__m512 a, __m512 b, __m512 c, __mmask16 k);

ab のパックド float32 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmaddsub_ps

extern __m512 __cdecl _mm512_maskz_fmaddsub_ps(__mmask16 k, __m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmaddsub_round_ps

extern __m512 __cdecl _mm512_fmaddsub_round_ps(__m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、最終結果を格納します。



_mm512_mask_fmaddsub_round_ps

extern __m512 __cdecl _mm512_mask_fmaddsub_round_ps(__m512 a, __mmask16 k, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmaddsub_round_ps

extern __m512 __cdecl _mm512_mask3_fmaddsub_round_ps(__m512 a, __m512 b, __m512 c, __mmask16 k, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmaddsub_round_ps

extern __m512 __cdecl _mm512_maskz_fmaddsub_round_ps(__mmask16 k, __m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素と中間結果の加算および減算を行い、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmsub_pd

extern __m512d __cdecl _mm512_fmsub_pd(__m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、中間結果から c のパックド要素を減算し、最終結果を格納します。



_mm512_mask_fmsub_pd

extern __m512d __cdecl _mm512_mask_fmsub_pd(__m512d a, __mmask8 k, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmsub_pd

extern __m512d __cdecl _mm512_mask3_fmsub_pd(__m512d a, __m512d b, __m512d c, __mmask8 k);

ab のパックド float64 要素の乗算を行った後、中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmsub_pd

extern __m512d __cdecl _mm512_maskz_fmsub_pd(__mmask8 k, __m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、中間結果から c のパックド要素を減算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmsub_round_pd

extern __m512d __cdecl _mm512_fmsub_round_pd(__m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、中間結果から c のパックド要素を減算し、最終結果を格納します。



_mm512_mask_fmsub_round_pd

extern __m512d __cdecl _mm512_mask_fmsub_round_pd(__m512d a, __mmask8 k, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmsub_round_pd

extern __m512d __cdecl _mm512_mask3_fmsub_round_pd(__m512d a, __m512d b, __m512d c, __mmask8 k, int round);

ab のパックド float64 要素の乗算を行った後、中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmsub_round_pd

extern __m512d __cdecl _mm512_maskz_fmsub_round_pd(__mmask8 k, __m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、中間結果から c のパックド要素を減算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmsub_ps

extern __m512 __cdecl _mm512_fmsub_ps(__m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、中間結果から c のパックド要素を減算し、最終結果を格納します。



_mm512_mask_fmsub_ps

extern __m512 __cdecl _mm512_mask_fmsub_ps(__m512 a, __mmask16 k, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmsub_ps

extern __m512 __cdecl _mm512_mask3_fmsub_ps(__m512 a, __m512 b, __m512 c, __mmask16 k);

ab のパックド float32 要素の乗算を行った後、中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmsub_ps

extern __m512 __cdecl _mm512_maskz_fmsub_ps(__mmask16 k, __m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、中間結果から c のパックド要素を減算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmsub_round_ps

extern __m512 __cdecl _mm512_fmsub_round_ps(__m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、中間結果から c のパックド要素を減算し、最終結果を格納します。



_mm512_mask_fmsub_round_ps

extern __m512 __cdecl _mm512_mask_fmsub_round_ps(__m512 a, __mmask16 k, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmsub_round_ps

extern __m512 __cdecl _mm512_mask3_fmsub_round_ps(__m512 a, __m512 b, __m512 c, __mmask16 k, int round);

ab のパックド float32 要素の乗算を行った後、中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmsub_round_ps

extern __m512 __cdecl _mm512_maskz_fmsub_round_ps(__mmask16 k, __m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、中間結果から c のパックド要素を減算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_fmsub_sd

extern __m128d __cdecl _mm_mask_fmsub_sd(__m128d a, __mmask8 k, __m128d b, __m128d c);

ab の下位 float64 要素の乗算を行った後、中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fmsub_sd

extern __m128d __cdecl _mm_mask3_fmsub_sd(__m128d a, __m128d b, __m128d c, __mmask8 k);

ab の下位 float64 要素の乗算を行った後、中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fmsub_sd

extern __m128d __cdecl _mm_maskz_fmsub_sd(__mmask8 k, __m128d a, __m128d b, __m128d c);

ab の下位 float64 要素の乗算を行った後、中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask_fmsub_round_sd

extern __m128d __cdecl _mm_mask_fmsub_round_sd(__m128d a, __mmask8 k, __m128d b, __m128d c, int round);

ab の下位 float64 要素の乗算を行った後、中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fmsub_round_sd

extern __m128d __cdecl _mm_mask3_fmsub_round_sd(__m128d a, __m128d b, __m128d c, __mmask8 k, int round);

ab の下位 float64 要素の乗算を行った後、中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fmsub_round_sd

extern __m128d __cdecl _mm_maskz_fmsub_round_sd(__mmask8 k, __m128d a, __m128d b, __m128d c, int round);

ab の下位 float64 要素の乗算を行った後、中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask_fmsub_ss

extern __m128 __cdecl _mm_mask_fmsub_ss(__m128 a, __mmask8 k, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fmsub_ss

extern __m128 __cdecl _mm_mask3_fmsub_ss(__m128 a, __m128 b, __m128 c, __mmask8 k);

ab の下位 float32 要素の乗算を行った後、中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fmsub_ss

extern __m128 __cdecl _mm_maskz_fmsub_ss(__mmask8 k, __m128 a, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask_fmsub_round_ss

extern __m128 __cdecl _mm_mask_fmsub_round_ss(__m128 a, __mmask8 k, __m128 b, __m128 c, int round);

ab の下位 float32 要素の乗算を行った後、中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fmsub_round_ss

extern __m128 __cdecl _mm_mask3_fmsub_round_ss(__m128 a, __m128 b, __m128 c, __mmask8 k, int round);

ab の下位 float32 要素の乗算を行った後、中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fmsub_round_ss

extern __m128 __cdecl _mm_maskz_fmsub_round_ss(__mmask8 k, __m128 a, __m128 b, __m128 c, int round);

ab の下位 float32 要素の乗算を行った後、中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm512_fmsubadd_pd

extern __m512d __cdecl _mm512_fmsubadd_pd(__m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、最終結果を格納します。



_mm512_mask_fmsubadd_pd

extern __m512d __cdecl _mm512_mask_fmsubadd_pd(__m512d a, __mmask8 k, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmsubadd_pd

extern __m512d __cdecl _mm512_mask3_fmsubadd_pd(__m512d a, __m512d b, __m512d c, __mmask8 k);

ab のパックド float64 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmsubadd_pd

extern __m512d __cdecl _mm512_maskz_fmsubadd_pd(__mmask8 k, __m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、ゼロマスク k を使用して最終結果をデスティネーションに格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmsubadd_round_pd

extern __m512d __cdecl _mm512_fmaddsub_round_pd(__m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、最終結果を格納します。



_mm512_mask_fmsubadd_round_pd

extern __m512d __cdecl _mm512_mask_fmaddsub_round_pd(__m512d a, __mmask8 k, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmsubadd_round_pd

extern __m512d __cdecl _mm512_mask3_fmaddsub_round_pd(__m512d a, __m512d b, __m512d c, __mmask8 k, int round);

ab のパックド float64 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmsubadd_round_pd

extern __m512d __cdecl _mm512_maskz_fmaddsub_round_pd(__mmask8 k, __m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmsubadd_ps

extern __m512 __cdecl _mm512_fmsubadd_ps(__m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、最終結果を格納します。



_mm512_mask_fmsubadd_ps

extern __m512 __cdecl _mm512_mask_fmsubadd_ps(__m512 a, __mmask16 k, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmsubadd_ps

extern __m512 __cdecl _mm512_mask3_fmsubadd_ps(__m512 a, __m512 b, __m512 c, __mmask16 k);

ab のパックド float32 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmsubadd_ps

extern __m512 __cdecl _mm512_maskz_fmsubadd_ps(__mmask16 k, __m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fmsubadd_round_ps

extern __m512 __cdecl _mm512_fmsubadd_round_ps(__m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、最終結果を格納します。



_mm512_mask_fmsubadd_round_ps

extern __m512 __cdecl _mm512_mask_fmsubadd_round_ps(__m512 a, __mmask16 k, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fmsubadd_round_ps

extern __m512 __cdecl _mm512_mask3_fmsubadd_round_ps(__m512 a, __m512 b, __m512 c, __mmask16 k, int round);

ab のパックド float32 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fmsubadd_round_ps

extern __m512 __cdecl _mm512_maskz_fmsubadd_round_ps(__mmask16 k, __m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、中間結果と c のパックド要素の減算および加算を行い、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fnmadd_pd

extern __m512d __cdecl _mm512_fnmadd_pd(__m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、最終結果を格納します。



_mm512_mask_fnmadd_pd

extern __m512d __cdecl _mm512_mask_fnmadd_pd(__m512d a, __mmask8 k, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fnmadd_pd

extern __m512d __cdecl _mm512_mask3_fnmadd_pd(__m512d a, __m512d b, __m512d c, __mmask8 k);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fnmadd_pd

extern __m512d __cdecl _mm512_maskz_fnmadd_pd(__mmask8 k, __m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fnmadd_round_pd

extern __m512d __cdecl _mm512_fnmadd_round_pd(__m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、最終結果を格納します。



_mm512_mask_fnmadd_round_pd

extern __m512d __cdecl _mm512_mask_fnmadd_round_pd(__m512d a, __mmask8 k, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fnmadd_round_pd

extern __m512d __cdecl _mm512_mask3_fnmadd_round_pd(__m512d a, __m512d b, __m512d c, __mmask8 k, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fnmadd_round_pd

extern __m512d __cdecl _mm512_maskz_fnmadd_round_pd(__mmask8 k, __m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fnmadd_ps

extern __m512 __cdecl _mm512_fnmadd_ps(__m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、最終結果を格納します。



_mm512_mask_fnmadd_ps

extern __m512 __cdecl _mm512_mask_fnmadd_ps(__m512 a, __mmask16 k, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fnmadd_ps

extern __m512 __cdecl _mm512_mask3_fnmadd_ps(__m512 a, __m512 b, __m512 c, __mmask16 k);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fnmadd_ps

extern __m512 __cdecl _mm512_maskz_fnmadd_ps(__mmask16 k, __m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fnmadd_round_ps

extern __m512 __cdecl _mm512_fnmadd_round_ps(__m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、最終結果を格納します。



_mm512_mask_fnmadd_round_ps

extern __m512 __cdecl _mm512_mask_fnmadd_round_ps(__m512 a, __mmask16 k, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fnmadd_round_ps

extern __m512 __cdecl _mm512_mask3_fnmadd_round_ps(__m512 a, __m512 b, __m512 c, __mmask16 k, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fnmadd_round_ps

extern __m512 __cdecl _mm512_maskz_fnmadd_round_ps(__mmask16 k, __m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、c のパックド要素に符号を反転した中間結果を加算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_fnmadd_sd

extern __m128d __cdecl _mm_mask_fnmadd_sd(__m128d a, __mmask8 k, __m128d b, __m128d c);

ab の下位 float64 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmadd_sd

extern __m128d __cdecl _mm_mask3_fnmadd_sd(__m128d a, __m128d b, __m128d c, __mmask8 k);

ab の下位 float64 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fnmadd_sd

extern __m128d __cdecl _mm_maskz_fnmadd_sd(__mmask8 k, __m128d a, __m128d b, __m128d c);

ab の下位 float64 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask_fnmadd_round_sd

extern __m128d __cdecl _mm_mask_fnmadd_round_sd(__m128d a, __mmask8 k, __m128d b, __m128d c, int round);

ab の下位 float64 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmadd_round_sd

extern __m128d __cdecl _mm_mask3_fnmadd_round_sd(__m128d a, __m128d b, __m128d c, __mmask8 k, int round);

ab の下位 float64 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fnmadd_round_sd

extern __m128d __cdecl _mm_maskz_fnmadd_round_sd(__mmask8 k, __m128d a, __m128d b, __m128d c, int round);

ab の下位 float64 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask_fnmadd_ss

extern __m128 __cdecl _mm_mask_fnmadd_ss(__m128 a, __mmask8 k, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmadd_ss

extern __m128 __cdecl _mm_mask3_fnmadd_ss(__m128 a, __m128 b, __m128 c, __mmask8 k);

ab の下位 float32 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fnmadd_ss

extern __m128 __cdecl _mm_maskz_fnmadd_ss(__mmask8 k, __m128 a, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask_fnmadd_round_ss

extern __m128 __cdecl _mm_mask_fnmadd_round_ss(__m128 a, __mmask8 k, __m128 b, __m128 c, int round);

ab の下位 float32 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は a の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmadd_round_ss

extern __m128 __cdecl _mm_mask3_fnmadd_round_ss(__m128 a, __m128 b, __m128 c, __mmask8 k, int round);

ab の下位 float32 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fnmadd_round_ss

extern __m128 __cdecl _mm_maskz_fnmadd_round_ss(__mmask8 k, __m128 a, __m128 b, __m128 c, int round);

ab の下位 float32 要素の乗算を行った後、c の下位要素に符号を反転した中間結果を加算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm512_fnmsub_pd

extern __m512d __cdecl _mm512_fnmsub_pd(__m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、最終結果を格納します。



_mm512_mask_fnmsub_pd

extern __m512d __cdecl _mm512_mask_fnmsub_pd(__m512d a, __mmask8 k, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fnmsub_pd

extern __m512d __cdecl _mm512_mask3_fnmsub_pd(__m512d a, __m512d b, __m512d c, __mmask8 k);

ab のパックド float64 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fnmsub_pd

extern __m512d __cdecl _mm512_maskz_fnmsub_pd(__mmask8 k, __m512d a, __m512d b, __m512d c);

ab のパックド float64 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fnmsub_round_pd

extern __m512d __cdecl _mm512_fnmsub_round_pd(__m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、最終結果を格納します。



_mm512_mask_fnmsub_round_pd

extern __m512d __cdecl _mm512_mask_fnmsub_round_pd(__m512d a, __mmask8 k, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fnmsub_round_pd

extern __m512d __cdecl _mm512_mask3_fnmsub_round_pd(__m512d a, __m512d b, __m512d c, __mmask8 k, int round);

ab のパックド float64 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fnmsub_round_pd

extern __m512d __cdecl _mm512_maskz_fnmsub_round_pd(__mmask8 k, __m512d a, __m512d b, __m512d c, int round);

ab のパックド float64 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fnmsub_ps

extern __m512 __cdecl _mm512_fnmsub_ps(__m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、最終結果を格納します。



_mm512_mask_fnmsub_ps

extern __m512 __cdecl _mm512_mask_fnmsub_ps(__m512 a, __mmask16 k, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fnmsub_ps

extern __m512 __cdecl _mm512_mask3_fnmsub_ps(__m512 a, __m512 b, __m512 c, __mmask16 k);

ab のパックド float32 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fnmsub_ps

extern __m512 __cdecl _mm512_maskz_fnmsub_ps(__mmask16 k, __m512 a, __m512 b, __m512 c);

ab のパックド float32 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_fnmsub_round_ps

extern __m512 __cdecl _mm512_fnmsub_round_ps(__m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、最終結果を格納します。



_mm512_mask_fnmsub_round_ps

extern __m512 __cdecl _mm512_mask_fnmsub_round_ps(__m512 c, __mmask16 k, __m512 a, __m512 b, int round);

ab のパックド float32 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は a の要素がコピーされます)。



_mm512_mask3_fnmsub_round_ps

extern __m512 __cdecl _mm512_mask3_fnmsub_round_ps(__m512 a, __m512 b, __m512 c, __mmask16 k, int round);

ab のパックド float32 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、書き込みマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm512_maskz_fnmsub_round_ps

extern __m512 __cdecl _mm512_maskz_fnmsub_round_ps(__mmask16 k, __m512 a, __m512 b, __m512 c, int round);

ab のパックド float32 要素の乗算を行った後、符号を反転した中間結果から c のパックド要素を減算し、ゼロマスク k を使用して最終結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_mask_fnmsub_sd

extern __m128d __cdecl _mm_mask_fnmsub_sd(__m128d c, __mmask8 k, __m128d a, __m128d b);

ab の下位 float64 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmsub_sd

extern __m128d __cdecl _mm_mask3_fnmsub_sd(__m128d a, __m128d b, __m128d c, __mmask8 k);

ab の下位 float64 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fnmsub_sd

extern __m128d __cdecl _mm_maskz_fnmsub_sd(__mmask8 k, __m128d a, __m128d b, __m128d c);

ab の下位 float64 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask_fnmsub_ss

extern __m128 __cdecl _mm_mask_fnmsub_ss(__m128 c, __mmask8 k, __m128 a, __m128 b);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmsub_ss

extern __m128 __cdecl _mm_mask3_fnmsub_ss(__m128 a, __m128 b, __m128 c, __mmask8 k);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。最終結果をデスティネーションの下位要素に格納し、書き込みマスク k を使用して a の上位要素をデスティネーションの上位要素にコピーします (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm_maskz_fnmsub_ss

extern __m128 __cdecl _mm_maskz_fnmsub_ss(__mmask8 k, __m128 a, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask_fnmsub_round_ss

extern __m128 __cdecl _mm_mask_fnmsub_round_ss(__m128 c, __mmask8 k, __m128 a, __m128 b, int round);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmsub_round_ss

extern __m128 __cdecl _mm_mask3_fnmsub_round_ss(__m128 a, __m128 b, __m128 c, __mmask8 k, int round);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算し、最終結果をデスティネーションの下位要素に格納し、書き込みマスク k を使用して a の上位要素をデスティネーションの上位要素にコピーします (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm_maskz_fnmsub_round_ss

extern __m128 __cdecl _mm_maskz_fnmsub_round_ss(__mmask8 k, __m128 a, __m128 b, __m128 c, int round);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask_fnmsub_round_sd

extern __m128d __cdecl _mm_mask_fnmsub_round_sd(__m128d c, __mmask8 k, __m128d a, __m128d b, int round);

ab の下位 float64 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmsub_round_sd

extern __m128d __cdecl _mm_mask3_fnmsub_round_sd(__m128d a, __m128d b, __m128d c, __mmask8 k, int round);

ab の下位 float64 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_maskz_fnmsub_round_sd

extern __m128d __cdecl _mm_maskz_fnmsub_round_sd(__mmask8 k, __m128d a, __m128d b, __m128d c, int round);

ab の下位 float64 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位要素をデスティネーションの上位要素にコピーします。



_mm_mask_fnmsub_ss

extern __m128 __cdecl _mm_mask_fnmsub_ss(__m128 a, __mmask8 k, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。書き込みマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は c の要素がコピーされます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。



_mm_mask3_fnmsub_ss

extern __m128 __cdecl _mm_mask3_fnmsub_ss(__m128 a, __m128 b, __m128 c, __mmask8 k);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。最終結果をデスティネーションの下位要素に格納し、書き込みマスク k を使用して a の上位要素をデスティネーションの上位要素にコピーします (マスクの対応するビットが設定されていない場合は c の要素がコピーされます)。



_mm_maskz_fnmsub_ss

extern __m128 __cdecl _mm_maskz_fnmsub_ss(__mmask8 k, __m128 a, __m128 b, __m128 c);

ab の下位 float32 要素の乗算を行った後、符号を反転した中間結果から c の下位要素を減算します。ゼロマスク k を使用して最終結果をデスティネーションの下位要素に格納し (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)、a の上位 3 つのパックド要素をデスティネーションの上位要素にコピーします。