diff --git a/docs/LangRef.html b/docs/LangRef.html index 1f43ab67f24..f13f13909bc 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -277,6 +277,11 @@
+ declare float @llvm.fmuladd.f32(float %a, float %b, float %c) + declare double @llvm.fmuladd.f64(double %a, double %b, double %c) ++ +
The 'llvm.fmuladd.*' intrinsic functions represent multiply-add +expressions that can be fused if the code generator determines that the fused +expression would be legal and efficient.
+ +The 'llvm.fmuladd.*' intrinsics each take three arguments: two +multiplicands, a and b, and an addend c.
+ +The expression:
++ %0 = call float @llvm.fmuladd.f32(%a, %b, %c) ++
is equivalent to the expression a * b + c, except that rounding will not be +performed between the multiplication and addition steps if the code generator +fuses the operations. Fusion is not guaranteed, even if the target platform +supports it. If a fused multiply-add is required the corresponding llvm.fma.* +intrinsic function should be used instead.
+ ++ %r2 = call float @llvm.fmuladd.f32(float %a, float %b, float %c) ; yields {float}:r2 = (a * b) + c ++ +