_mm_fmsubadd_ps、_mm256_fmsubadd_ps

3 つの float32 ベクトルを使用したパックド単精度浮動小数点値の乗算-交互減算/加算。対応する FMA 命令は VFMSUBADD<XXX>PS です。XXX は 132、213、または 231 です。

構文

128 ビット・ベクトルの場合

extern __m128 _mm_fmsubadd_ps(__m128 a, __m128 b, __m128 c);

256 ビット・ベクトルの場合

extern __m256 _mm256_fmsubadd_ps(__m256 a, __m256 b, __m256 c);

引数

a

演算に使用する float32 ベクトル

b

演算に使用する float32 ベクトル

c

演算に使用する float32 ベクトル

説明

abc、3 つのソースベクトル/オペランドを使用してパックド単精度浮動小数点値の SIMD 乗算-交互減算/加算を実行します。ab、2 つのオペランドの対応する値が乗算され、無限精度の中間結果が取得されます。3 つ目のオペランド c の奇数値が中間結果から減算され、偶数値は中間結果の加算されます。最終結果は float32 値に最も近い値に丸められます。

コンパイラーはデフォルトで VFMSUBADD213PS 命令を使用し、その他の形式の VFMSUBADD132PS または VFMSUBADDS231PS については、低レベルの最適化が有益かまたは必要な場合のみ使用します。例えば、別の命令形式がレジスターを退避あるいは移動を減らすことが判明した場合、コンパイラーはデフォルトを変更することがあります。

戻り値

乗算-交互加算/減算演算の結果。


このヘルプトピックについてのフィードバックを送信

© 1996-2010 Intel Corporation. 無断での引用、転載を禁じます。