[Mlir-commits] [mlir] [mlir][ROCDL] Adds wmma scaled intrinsics for gfx1250 (PR #165915)
Krzysztof Drewniak
llvmlistbot at llvm.org
Thu Nov 20 11:40:02 PST 2025
================
@@ -701,6 +701,56 @@ class ROCDL_WMMA_ModsAB_IntrOp<string mnemonic, Type AB, Type CD> : ROCDL_IntrOp
}];
}
+// Overloaded operands: [1, 3] refers to LLVM intrinsic parameter positions where
+// A is at position 1 and B is at position 3 (after format parameters).
+class ROCDL_WMMA_Scale_IntrOp<string mnemonic, Type AB, Type CD, Type ScaleExpTy> : ROCDL_IntrOp<mnemonic,
+ [0], [1, 3], [], 1, 0, 0, 0, [0, 2, 4, 6, 7, 9, 10, 12, 13],
+ ["fmtA", "fmtB", "modC", "scaleAType", "fmtScaleA",
+ "scaleBType", "fmtScaleB", "reuseA", "reuseB"]>,
+ Arguments<(ins
+ DefaultValuedAttr<I32Attr, "0">:$fmtA,
+ LLVM_ScalarOrVectorOf<AB>:$A,
+ DefaultValuedAttr<I32Attr, "0">:$fmtB,
+ LLVM_ScalarOrVectorOf<AB>:$B,
+ DefaultValuedAttr<I16Attr, "0">:$modC,
+ LLVM_ScalarOrVectorOf<CD>:$C,
+ DefaultValuedAttr<I32Attr, "0">:$scaleAType,
+ DefaultValuedAttr<I32Attr, "0">:$fmtScaleA,
+ ScaleExpTy:$scaleA,
+ DefaultValuedAttr<I32Attr, "0">:$scaleBType,
+ DefaultValuedAttr<I32Attr, "0">:$fmtScaleB,
+ ScaleExpTy:$scaleB,
+ DefaultValuedAttr<I1Attr, "0">:$reuseA,
+ DefaultValuedAttr<I1Attr, "0">:$reuseB)> {
+ let results = (outs LLVM_ScalarOrVectorOf<CD>:$res);
+ let assemblyFormat = [{
+ $A `,` $B `,` $C `,` $scaleA `,` $scaleB attr-dict `:` functional-type(operands, $res)
+ }];
+}
+
+class ROCDL_WMMA_Scale_F4_IntrOp<string mnemonic, Type AB, Type CD, Type ScaleExpTy> : ROCDL_IntrOp<mnemonic,
+ [0], [0, 1], [], 1, 0, 0, 0, [2, 4, 5, 7, 8, 10, 11],
+ ["modC", "scaleAType", "fmtScaleA",
+ "scaleBType", "fmtScaleB", "reuseA", "reuseB"]>,
+ Arguments<(ins
+ LLVM_ScalarOrVectorOf<AB>:$A,
----------------
krzysz00 wrote:
(similarly on caps)
https://github.com/llvm/llvm-project/pull/165915
More information about the Mlir-commits
mailing list