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

_mm512_fmsub_ps/_mm512_fmsub_round_ps/_mm512_mask_fmsub_ps/_mm512_mask_fmsub_round_ps/_mm512_mask3_fmsub_ps/_mm512_mask3_fmsub_round_ps

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

構文

マスクなし

extern __m512 __cdecl _mm512_fmsub_ps(_m512 v1, __m512 v2, __m512 v3);

extern __m512 __cdecl _mm512_fmsub_round_ps(_m512 v1, __m512 v2, __m512 v3, int rc);

マスク付き

extern __m512 __cdecl _mm512_mask_fmsub_ps(_m512 v1, __mmask16 k1, __m512 v2, __m512 v3);

extern __m512 __cdecl _mm512_mask_fmsub_round_ps(_m512 v1, __mmask16 k1, __m512 v2, __m512 v3, int rc);

extern __m512 __cdecl _mm512_mask3_fmsub_ps(_m512 v1, __m512 v2, __m512 v3, __mmask16 k1);

extern __m512 __cdecl _mm512_mask3_fmsub_round_ps(_m512 v1, __m512 v, __m512 v3, __mmask16 k1, int rc);

引数

v1

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

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

v2

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

v3

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

k1

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

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 レジスターのデフォルトを使用して丸めます。

説明

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

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

戻り値

乗算-減算の結果。