================
@@ -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:

But where? https://github.com/KhronosGroup/OpenCL-Docs/pull/1533 doesn't 
mention it.

See my head comment - the specification that is listed in RFC as well as the 
RFC doesn't have any of the restrictions imposed or assumed in the 
implementation. It doesn't mean, that the assumptions are wrong - I see why we 
can only have constant expression shape, but it would be nice to compare 
implementation with the actual specification in many other things.

https://github.com/llvm/llvm-project/pull/221328
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to