This revision exposes the portable llvm.fma intrinsic in LLVMOps and uses it
in lieu of llvm.fmuladd when lowering the vector.outerproduct op to LLVM.
This guarantees proper fma instructions will be emitted if the target ISA
supports it.
llvm.fmuladd does not have this guarantee in its semantics, despite evidence
that the proper x86 instructions are emitted.
For more details, see https://llvm.org/docs/LangRef.html#llvm-fmuladd-intrinsic.