As @reames pointed out post-commit, rL371518 adds additional rounding
in some cases, when doing constant folding of the multiplication.
This breaks a guarantee llvm.fma makes and must be avoided.
This patch reapplies rL371518, but splits off the simplifications not
requiring rounding from SimplifFMulInst as SimplifyFMAFMul.
I don't think this restriction should apply to @llvm.fmuladd, as per https://llvm.org/docs/LangRef.html#llvm-fmuladd-intrinsic