When no -fp-contract option is provided (default behavior), compiler is fusing fmul and fadd/fsub into fmadd/fmsub.
GCC does not do that, so this patch makes LLVM behave like GCC.
Also, this patch makes LLVM take care of -fp-contract=fast option which enables fusing.
You can drop the parentheses here, they're spurious.