[all-commits] [llvm/llvm-project] a9fb8b: [MLIR][XeGPU] Support vector.contract transpose_a/...
Dmitry Chigarev via All-commits
all-commits at lists.llvm.org
Thu Mar 5 08:09:17 PST 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: a9fb8b06224aec404a2ec9bf101c40e36f46426c
https://github.com/llvm/llvm-project/commit/a9fb8b06224aec404a2ec9bf101c40e36f46426c
Author: Dmitry Chigarev <dmitry.chigarev at intel.com>
Date: 2026-03-05 (Thu, 05 Mar 2026)
Changed paths:
M mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp
M mlir/test/Conversion/VectorToXeGPU/contract-to-xegpu.mlir
Log Message:
-----------
[MLIR][XeGPU] Support vector.contract transpose_a/transpose_b via 'vector-to-gpu' patterns (#182885)
The PR adds [`vector.contract(transpose_a/transpose_b)` decomposition
patterns](https://github.com/llvm/llvm-project/blob/3215645b8d81bbef7db1d16b88de7ed0288f2274/mlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp#L1263)
from `vector-to-gpu` to `vector-to-xegpu` pass.
The `populatePrepareVectorToMMAPatterns` adds two patterns:
1. `PrepareContractToGPUMMA` that splits `vector.contract(transpose)`
into `vector.transpose + vector.contract`
2. `CombineTransferReadOpTranspose` that fuses `vector.transpose` into
the permutation map of `vector.transfer_read`
The second pattern doesn't always bring us to the desired result
(`xegpu.load_nd + vector.transpose + xegpu.dpas`) since [not all data
types are supported
](https://github.com/llvm/llvm-project/blob/1237bd6df05a4777f444677186e4814388916ea9/mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp#L570-L575)
for the transposed-read case. There's a second PR (#182875) on this
matter that adds a decomposition-pattern for unsupported types (it might
seem strange that we first fuse and then decompose
transfer_read+transpose but this way we don't have code duplication
between vector-to-gpu&to-xegpu passes and cover all functional cases)
---------
Signed-off-by: dchigarev <dmitry.chigarev at intel.com>
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list