| # RUN: %PYTHON -m mlir.dialects.linalg.opdsl.dump_oplib --file %s | FileCheck %s |
| |
| from mlir.dialects.linalg.opdsl.lang import * |
| |
| |
| # CHECK: --- |
| # CHECK-LABEL: matmul |
| # CHECK: implements: |
| # CHECK-NEXT: - LinalgContractionOpInterface |
| # CHECK: defines: |
| # CHECK-NEXT: - hasCanonicalizer |
| @linalg_structured_op |
| def matmul( |
| A=TensorDef(T, S.M, S.K), |
| B=TensorDef(T, S.K, S.N), |
| C=TensorDef(U, S.M, S.N, output=True), |
| ): |
| implements(ContractionOpInterface) |
| defines(Canonicalizer) |
| C[D.m, D.n] += TypeFn.cast_signed(U, A[D.m, D.k]) * TypeFn.cast_signed( |
| U, B[D.k, D.n] |
| ) |