[Lldb-commits] [clang] [lldb] [llvm] [OpenCL][Clang] Add support for cooperative matrix extension (PR #221328)

Dmitry Sidorov via lldb-commits lldb-commits at lists.llvm.org
Thu Sep 24 06:35:37 PDT 2026


================
@@ -1483,6 +1483,53 @@ See the OpenCL documentation for some more complete examples.
   }];
 }
 
+def CoopMatrixTypeDocs : Documentation {
+  let Category = DocCatType;
+  let Heading = "coop_mat";
+  let Content = [{
+The `coop_mat` attribute declares an OpenCL cooperative matrix type. Cooperative
+matrix operations are distributed across a set of invocations, such as a
+subgroup, allowing the implementation to optimize matrix multiply operations.
+
+The attribute is applied to a scalar numerical component type and takes four
+arguments:
+
+```c
+__attribute__((coop_mat(scope, rows, columns, use)))
+```
+- scope specifies the memory scope of the cooperative matrix.
+  It must be one of the supported OpenCL memory scopes, such as CLK_COOPERATIVE_MATRIX_SCOPE_SUBGROUP.
+- rows specifies the number of rows in the matrix. It must be a constant expression.
+- columns specifies the number of columns in the matrix. It must be a constant expression.
----------------
MrSidims wrote:

Is there a restriction in the specification, that parametrization of a matrix must be a constant expression?

Note: SPIR-V spec tells, that parametrization must be done via constant instruction, which includes specialization constants. Environmental specification may restrict it even further - but I don't see any.

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


More information about the lldb-commits mailing list