[Mlir-commits] [mlir] [mlir][amdgpu] Define an amdgpu.scaling_mfma wrapper (PR #137498)

Krzysztof Drewniak llvmlistbot at llvm.org
Mon Apr 28 13:16:33 PDT 2025


================
@@ -506,6 +506,40 @@ LogicalResult GatherToLDSOp::verify() {
   return success();
 }
 
+LogicalResult ScaledMFMAOp::verify() {
+  unsigned opselA = getOpselA() >> 8;
+  unsigned opselB = getOpselB() >> 8;
+
+  if (opselA != 0)
+    return emitOpError("Opsel A must be a zero extended 8 bit value");
+
+  if (opselB != 0)
+    return emitOpError("Opsel B must be a zero extended 8 bit value");
+
+  auto isValidType =
+      llvm::IsaPred<Float8E4M3FNType, Float8E5M2Type, Float6E2M3FNType,
+                    Float6E3M2FNType, Float4E2M1FNType>;
+
+  Type aType = getSourceA().getType();
+  Type bType = getSourceB().getType();
+  aType = getElementTypeOrSelf(aType);
+  bType = getElementTypeOrSelf(bType);
+  if (!isValidType(aType))
+    return emitOpError("Source A must be of element type fp4, fp6 or fp8");
+  if (!isValidType(bType))
+    return emitOpError("Source B must be of element type fp4, fp6 or fp8");
+
+  unsigned m = getM();
+  unsigned n = getN();
+  unsigned k = getK();
+  bool tileConfig1 = (m == n && n == 32 && k == 64);
----------------
krzysz00 wrote:

Don't check these here - they'll get checked at lowering

https://github.com/llvm/llvm-project/pull/137498


More information about the Mlir-commits mailing list