This is an archive of the discontinued LLVM Phabricator instance.

[mlir][VectorOps] Expose and use llvm.intrin.fma*
ClosedPublic

Authored by nicolasvasilache on Feb 7 2020, 6:30 AM.

Details

Summary

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.

Diff Detail

Event Timeline

Herald added a project: Restricted Project. · View Herald TranscriptFeb 7 2020, 6:30 AM
aartbik accepted this revision.Feb 7 2020, 12:09 PM
This revision is now accepted and ready to land.Feb 7 2020, 12:09 PM
This revision was automatically updated to reflect the committed changes.