[Mlir-commits] [mlir] [MLIR][XeGPU] Add support for elementwise ops in Wg to Sg distribute pass [1/N] (PR #142797)
Adam Siemieniuk
llvmlistbot at llvm.org
Wed Jun 11 05:07:40 PDT 2025
================
@@ -314,6 +317,90 @@ struct WgToSgPrefetchNdOp : public OpConversionPattern<xegpu::PrefetchNdOp> {
}
};
+// This pattern transforms elementwise ops (unary/binary) in math/arith dialect
+template <typename Op>
+struct WgToSgElementwiseOp : public OpConversionPattern<Op> {
----------------
adam-smnk wrote:
Oh sorry, I copy pasted wrong base class.
Anyway to give more details, you should be able to use base `ConversionPattern` with `: ConversionPattern(MatchAnyOpTypeTag()` constructor, and override its 1:N matcher hook:
```
/// Hook for derived classes to implement combined matching and rewriting.
/// This overload supports 1:N replacements.
virtual LogicalResult
matchAndRewrite(Operation *op, ArrayRef<ValueRange> operands,
ConversionPatternRewriter &rewriter) const
```
instead of op adaptor. The passed `operands` argument should be the same as `adaptor.getOperands()`.
https://github.com/llvm/llvm-project/pull/142797
More information about the Mlir-commits
mailing list