[Mlir-commits] [mlir] [MLIR][XeGPU][XeVM] XeGPU to XeVM: Add lowering for xegpu.dpas_mx (PR #196981)
Sang Ik Lee
llvmlistbot at llvm.org
Thu May 14 08:32:06 PDT 2026
================
@@ -1066,6 +1076,72 @@ class AtomicRMWToXeVMPattern : public OpConversionPattern<xegpu::AtomicRMWOp> {
}
};
+class DpasMxToXeVMPattern : public OpConversionPattern<xegpu::DpasMxOp> {
+ using OpConversionPattern::OpConversionPattern;
+ LogicalResult
+ matchAndRewrite(xegpu::DpasMxOp op, xegpu::DpasMxOp::Adaptor adaptor,
+ ConversionPatternRewriter &rewriter) const override {
+ auto loc = op.getLoc();
+ auto ctxt = rewriter.getContext();
+ auto aTy = op.getA().getType();
+ auto bTy = op.getB().getType();
+ auto resVecTy =
+ cast<VectorType>(getTypeConverter()->convertType(op.getType()));
+
+ auto chipStr = xegpu::getChipStr(op);
+ if (!chipStr)
+ return rewriter.notifyMatchFailure(op, "cannot determine target chip");
+
+ const auto *uArch = xegpu::uArch::getUArch(*chipStr);
+ if (!uArch)
+ return rewriter.notifyMatchFailure(op, "unsupported target uArch");
+
+ // TODO: Add supported shape check
+
+ xevm::ElemType precATy = encodePrecision(aTy.getElementType());
+ xevm::ElemType precBTy = encodePrecision(bTy.getElementType());
+ Value c = adaptor.getAcc();
+ if (!c) {
+ auto elementTy = resVecTy.getElementType();
----------------
silee2 wrote:
Added.
https://github.com/llvm/llvm-project/pull/196981
More information about the Mlir-commits
mailing list