[Mlir-commits] [mlir] [mlir][xegpu] Add support for `vector.reduction` and `vector.multi_reduction` subgroup to work-item distribution. (PR #180308)
Artem Kroviakov
llvmlistbot at llvm.org
Tue Feb 10 01:46:08 PST 2026
================
@@ -551,8 +715,44 @@ void xegpu::populateXeGPUSgToWiDistributeTypeConversionAndLegality(
}
return !xegpu::getTemporaryLayout(dyn_cast<OpResult>(op->getResult(0)));
});
+ // vector::ReductionOp is legal only if its source has no distribute layout
+ // attribute.
+ target.addDynamicallyLegalOp<vector::ReductionOp>(
+ [=](vector::ReductionOp op) -> bool {
+ auto layout = xegpu::getDistributeLayoutAttr(op.getVector());
+ return !layout;
+ });
+ // vector::MultiDimReductionOp op legality.
+ target.addDynamicallyLegalOp<vector::MultiDimReductionOp>(
+ [=](vector::MultiDimReductionOp op) -> bool {
+ // Check common conditions for subgroup multi reduction op.
+ if (!isValidSubgroupMultiReductionOp(op))
----------------
akroviakov wrote:
If the patterns do not apply to `!isValidSubgroupMultiReductionOp(op)`, why check for it in the patterns themselves?
https://github.com/llvm/llvm-project/pull/180308
More information about the Mlir-commits
mailing list