[Mlir-commits] [mlir] [mlir][spirv] Add definition for VectorTimesMatrixOp (PR #124571)
Jakub Kuderski
llvmlistbot at llvm.org
Mon Jan 27 09:20:49 PST 2025
================
@@ -198,4 +197,50 @@ def SPIRV_TransposeOp : SPIRV_Op<"Transpose", [Pure]> {
// -----
+def SPIRV_VectorTimesMatrixOp : SPIRV_Op<"VectorTimesMatrix", [Pure]> {
+ let summary = "Linear-algebraic Vector X Matrix.";
+
+ let description = [{
+ Result Type must be a vector of floating-point type.
+
+ Vector must be a vector with the same Component Type as the Component
+ Type in Result Type. Its number of components must equal the number of
+ components in each column in Matrix.
+
+ Matrix must be a matrix with the same Component Type as the Component
+ Type in Result Type. Its number of columns must equal the number of
+ components in Result Type.
+
+ <!-- End of AutoGen section -->
+
+ #### Example:
+
+ ```mlir
+ %result = spirv.VectorTimesMatrix %vector, %matrix : vector<4xf32>, !spirv.matrix<4 x vector<4xf32>> -> vector<4xf32>
+ ```
+ }];
+
+ let availability = [
+ MinVersion<SPIRV_V_1_0>,
+ MaxVersion<SPIRV_V_1_6>,
+ Extension<[]>,
+ Capability<[SPIRV_C_Matrix]>
+ ];
+
+ let arguments = (ins
+ SPIRV_AnyVector:$vector,
----------------
kuhar wrote:
Yeah, I think having these be more specific is the right thing todo despite the language in the spec that merely implies it. This will make the code and error messages easier to understand.
https://github.com/llvm/llvm-project/pull/124571
More information about the Mlir-commits
mailing list