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

_mm512_fmsub_pd/_mm512_fmsub_round_pd/_mm512_mask_fmsub_pd/_mm512_mask_fmsub_round_pd/_mm512_mask3_fmsub_pd/_mm512_mask3_fmsub_round_pd

float64 ベクトルを乗算、減算します。この組込み関数は、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーにのみ適用されます。

構文

マスクなし

extern __m512d __cdecl _mm512_fmsub_pd(_m512d v1, __m512d v2, __m512d v3);

extern __m512d __cdecl _mm512_fmsub_round_pd(_m512d v1, __m512d v2, __m512d v3, int rc);

マスク付き

extern __m512d __cdecl _mm512_mask_fmsub_pd(_m512d v1, __mmask8 k1, __m512d v2, __m512d v3);

extern __m512d __cdecl _mm512_mask_fmsub_round_pd(_m512d v1, __mmask8 k1, __m512d v2, __m512d v3, int rc);

extern __m512d __cdecl _mm512_mask3_fmsub_pd(_m512d v1, __m512d v2, __m512d v3, __mmask8 k1);

extern __m512d __cdecl _mm512_mask3_fmsub_round_pd(_m512d v1, __m512d v2, __m512d v3, __mmask8 k1, int rc);

引数

v1

float64 ベクトル v2 と乗算する float64 ベクトル。

構文が v1_old ではなく v1 であることに注意してください。

v2

float64 ベクトルv1 と乗算する float64 ベクトル

v3

v1v2 の積から減算する float64 ベクトル。

k1

書き込みマスク。k1 マスクの対応するビットが '1' にセットされているソースベクトルの要素のみ計算され、結果に格納されます。k1 の対応するビットが 0 にセットされている結果ベクトルの要素は、ベクトル v1_old の要素からコピーされます。

rc

丸め制御値。次のいずれかになります。

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

説明

float64 ベクトル v1 と float64 ベクトル v2 間で要素単位の乗算を行った後、結果から float64 ベクトル v3 を減算します。 中間値は無限の精度で計算されます。rc 引数を指定しない限り、切り捨てられることも、丸められることもありません。

マスク付きにはさらに引数 k1 があります。 ベクトルマスク k1 の対応するビットがセットされているソースレジスターの要素のみ計算に使用されます。 書き込みマスクが使用されると、マスク引数の直前のベクトル引数からのパススルー値が返されます。例えば、_mm512_mask_fmsub_pd(v1, k1, v2, v3)v1 からのパススルー値、_mm512_mask3_fmsub_pd(v1, v2, v3, k3)v3 からのパススルー値が返されます。v2 からのパススルー値を取得するには、_mask_ 形式で v1v2 の順序を逆にします。

戻り値

乗算-減算の結果。