[Mlir-commits] [mlir] [MLIR][XeGPU] Validate DPAS operand types against uArch in XeGPUToXeVM conversion (PR #185081)
Arjun Bhamra
llvmlistbot at llvm.org
Wed Mar 11 18:00:21 PDT 2026
================
@@ -902,6 +903,43 @@ class DpasToXeVMPattern : public OpConversionPattern<xegpu::DpasOp> {
auto bTy = cast<VectorType>(op.getRhs().getType());
auto resultType = cast<VectorType>(op.getResultType());
+ // get the correct dpasInst by getting info from chip
+ auto chipStr = xegpu::getChipStr(op);
+ if (!chipStr)
+ return rewriter.notifyMatchFailure(op, "cannot determine target chip");
+
+ const auto *uArch = mlir::xegpu::uArch::getUArch(*chipStr);
+ if (!uArch)
+ return rewriter.notifyMatchFailure(op, "unsupported target uArch");
+
+ auto *dpasInst = const_cast<xegpu::uArch::SubgroupMatrixMultiplyAcc *>(
+ llvm::dyn_cast_or_null<xegpu::uArch::SubgroupMatrixMultiplyAcc>(
+ uArch->getInstruction(
+ xegpu::uArch::InstructionKind::SubgroupMatrixMultiplyAcc)));
+ if (!dpasInst)
+ return rewriter.notifyMatchFailure(op,
+ "DPAS not supported by target uArch");
+
+ auto supportedA =
----------------
abhamra wrote:
Done in the latest commits.
https://github.com/llvm/llvm-project/pull/185081
More information about the Mlir-commits
mailing list