[mlir][Vector]Lower vector.contract to llvm.intr.matrix_multiply
Summary: This revision adds lowering of vector.contract to llvm.intr.matrix_multiply. Note that there is currently a mismatch between the MLIR vector dialect which expects row-major layout and the LLVM matrix intrinsics which expect column major layout. As a consequence, we currently only match a vector.contract with indexing maps that express column-major matrix multiplication. Other cases would require additional transposes and it is better to wait for LLVM intrinsics to provide a per-operation attribute that would specify which layout is expected. A separate integration test, not submitted to MLIR core, has independently verified that correct execution occurs on a 2x2x2 matrix multiplication. Differential Revision: https://reviews.llvm.org/D76014
Loading
Please sign in to comment