3 つの float64 ベクトルを使用したパックド倍精度浮動小数点値の乗算-交互加算/減算。対応する FMA 命令は VFMADDSUB<XXX>PD です。XXX は 132、213、または 231 です。
128 ビット・ベクトルの場合
extern __m128d _mm_fmaddsub_pd(__m128d a, __m128d b, __m128d c); |
256 ビット・ベクトルの場合
extern __m256d _mm256_fmaddsub_pd(__m256d a, __m256d b, __m256d c); |
a、b、c、3 つのソースベクトル/オペランドを使用してパックド倍精度浮動小数点値の SIMD 乗算-交互加算/減算を実行します。a と b、2 つのオペランドの対応する値が乗算され、無限精度の中間結果が取得されます。3 つ目のオペランド c の奇数値が中間結果に加算され、偶数値は中間結果から減算されます。最終結果は float64 値に最も近い値に丸められます。
コンパイラーはデフォルトで VFMADDSUB213PD 命令を使用し、その他の形式の VFMADDSUB132PD または VFMADDSUB231PD については、低レベルの最適化が有益かまたは必要な場合のみ使用します。例えば、別の命令形式がレジスターを退避あるいは移動を減らすことが判明した場合、コンパイラーはデフォルトを変更することがあります。
© 1996-2010 Intel Corporation. 無断での引用、転載を禁じます。