On Fri, 20 Feb 2015, Steve Ellcey wrote: > Or one could change convert_mult_to_fma to add a check if fma is fused > vs. non-fused in addition to the check for the flag_fp_contract_mode in > order to decide whether to convert expressions into an fma and then > define fma instructions in the md file.
It's a bad idea for the meaning of GIMPLE codes to depend on command-line options. Remember that objects built with different options may be linked together with LTO. In view of offloading, it's a bad idea for the meaning of GIMPLE codes to depend on the target either (though targets may still have different machine modes, built-in functions, etc.). Thus FMA_EXPR should only mean a fused operation (and I think the same applies to fma RTL). Whether there should be a non-fused MULT_ADD_EXPR I don't know. (I wonder if convert_mult_to_fma is something that should move to match-and-simplify infrastructure.) -- Joseph S. Myers jos...@codesourcery.com