[Mlir-commits] [mlir] [mlir][amdgpu] Add scaled_ext_packed{8, 16} operations (PR #159830)
Erick Ochoa Lopez
llvmlistbot at llvm.org
Fri Oct 17 06:49:26 PDT 2025
================
@@ -112,6 +112,73 @@ def AMDGPU_ExtPackedFp8Op :
}];
}
+def IsValidBlockSize: AttrConstraint<
+ CPred<"::llvm::cast<::mlir::IntegerAttr>($_self).getInt() == 16 || ::llvm::cast<::mlir::IntegerAttr>($_self).getInt() == 32">,
+ "whose value is 16 or 32">;
+
+
+def Vector4Scales :
+ AllOfType<[FixedVectorOfLengthAndType<[4], [F8E8M0FNU]>],
+ "vector of 4 F8E8M0FNU scales",
+ "::mlir::VectorType">,
+ BuildableType<"::mlir::VectorType::get({4}, $_builder.getType<::mlir::Float8E8M0FNUType>());">;
----------------
amd-eochoalo wrote:
🤔 Thanks! I can add it to the assembly format, but I also wanted to share this other possibility. I
```diff
diff --git a/mlir/include/mlir/IR/CommonTypeConstraints.td b/mlir/include/mlir/IR/CommonTypeConstraints.td
index 6b4e3dd60319..5c3652d23e9c 100644
--- a/mlir/include/mlir/IR/CommonTypeConstraints.td
+++ b/mlir/include/mlir/IR/CommonTypeConstraints.td
@@ -623,6 +623,14 @@ class VectorOfLengthAndType<list<int> allowedLengths,
VectorOfNonZeroRankOf<allowedTypes>.summary # VectorOfLength<allowedLengths>.summary,
"::mlir::VectorType">;
+class FixedVectorOfShapeAndType<list<int> shape, Type elType>: ShapedContainerType<
+ [elType],
+ And<[IsVectorOfShape<shape>, IsFixedVectorOfAnyRankTypePred]>,
+ "vector<" # !interleave(shape, "x ") # "x" # elType # ">",
+ "::mlir::VectorType">,
+ BuildableType<"::mlir::VectorType::get({" # !interleave(shape, " ,") # "} , " # elType.builderCall # " );">;
+
+
// Any fixed-length vector where the number of elements is from the given
// `allowedLengths` list and the type is from the given `allowedTypes` list
class FixedVectorOfLengthAndType<list<int> allowedLengths,
```
I think this using FixedVectorOfShapeAndType conveys enough information at first glance, but happy to add it to the assembly list instead. I also need this type for the output after @krzysz00 comment above
> This technically allows vector<2x2xf8E8M0FNU>
since the output would also allow for similar combination of shapes.
https://github.com/llvm/llvm-project/pull/159830
More information about the Mlir-commits
mailing list