[llvm-dev] RFC: change -fp-contract=off to actually disable FMAs

Matt Arsenault via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 10 14:16:15 PDT 2019



> On Jul 10, 2019, at 16:56, Scott Manley <rscottmanley at gmail.com> wrote:
> 
> At any rate, I was only offering an additional reason. Personally I think it's strange for an option to say "this will never fuse ops" and then under the covers will fuse ops, regardless of how FMAD is defined. However, my primary concern is for FMAs. They have both numeric and performance implications and I do not think it's unreasonable that off means off.

I think you have a different definition of fused then. Fused is a description of how the operation is computed/rounded, not an instruction count. The F in FMAD is not fused (I know this naming scheme is not great. Every other FP node besides FMA has an F prefix)

For FMA, I think your example IR is correctly handled. The fast instruction flag should override the global FP option you’re providing. For the issue you are describing, this is more of a question of whether clang should be emitting the fast flag or not.

-Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190710/19e0facb/attachment.html>


More information about the llvm-dev mailing list