[LLVMdev] Clarifying FMA-related TargetOptions
resistor at mac.com
Wed Feb 8 10:48:09 PST 2012
On Feb 8, 2012, at 10:44 AM, James Molloy wrote:
> Hi Owen,
> Having looked into this due to Clang failing PlumHall with it recently I can give an opinion...
> I think !NoExcessFPPrecision covers FMA completely. There are indeed some algorithms which give incorrect results when FMA is enabled, examples being those that do floating point comparisons such as: a * b + c - d. If c == d, it is still possible for that result not to equal a*b, as "+c " will have been fused with the multiply whereas "- d" won't.
I agree that !NoExcessFPPrecision seems like it should cover FMA, but if that that is the case, what does LessPreciseFPMADOption cover?
More information about the llvm-dev