|
15 | 15 |
|
16 | 16 | // -----
|
17 | 17 |
|
18 |
| -def SPV_JointMatrixWorkItemLengthINTELOp : SPV_Op<"JointMatrixWorkItemLengthINTEL", |
| 18 | +def SPV_INTELJointMatrixWorkItemLengthOp : SPV_IntelVendorOp<"JointMatrixWorkItemLength", |
19 | 19 | [NoSideEffect]> {
|
20 | 20 | let summary = "See extension SPV_INTEL_joint_matrix";
|
21 | 21 |
|
22 | 22 | let description = [{
|
23 |
| - Return number of components owned by the current work-item in |
| 23 | + Return number of components owned by the current work-item in |
24 | 24 | a joint matrix.
|
25 | 25 |
|
26 | 26 | Result Type must be an 32-bit unsigned integer type scalar.
|
@@ -60,34 +60,34 @@ def SPV_JointMatrixWorkItemLengthINTELOp : SPV_Op<"JointMatrixWorkItemLengthINTE
|
60 | 60 |
|
61 | 61 | // -----
|
62 | 62 |
|
63 |
| -def SPV_JointMatrixLoadINTELOp : SPV_Op<"JointMatrixLoadINTEL", []> { |
| 63 | +def SPV_INTELJointMatrixLoadOp : SPV_IntelVendorOp<"JointMatrixLoad", []> { |
64 | 64 | let summary = "See extension SPV_INTEL_joint_matrix";
|
65 | 65 |
|
66 | 66 | let description = [{
|
67 | 67 | Load a matrix through a pointer.
|
68 | 68 |
|
69 | 69 | Result Type is the type of the loaded matrix. It must be OpTypeJointMatrixINTEL.
|
70 | 70 |
|
71 |
| - Pointer is the pointer to load through. It specifies start of memory region where |
| 71 | + Pointer is the pointer to load through. It specifies start of memory region where |
72 | 72 | elements of the matrix are stored and arranged according to Layout.
|
73 | 73 |
|
74 |
| - Stride is the number of elements in memory between beginnings of successive rows, |
| 74 | + Stride is the number of elements in memory between beginnings of successive rows, |
75 | 75 | columns (or words) in the result. It must be a scalar integer type.
|
76 | 76 |
|
77 |
| - Layout indicates how the values loaded from memory are arranged. It must be the |
| 77 | + Layout indicates how the values loaded from memory are arranged. It must be the |
78 | 78 | result of a constant instruction.
|
79 | 79 |
|
80 |
| - Scope is syncronization scope for operation on the matrix. It must be the result |
| 80 | + Scope is syncronization scope for operation on the matrix. It must be the result |
81 | 81 | of a constant instruction with scalar integer type.
|
82 | 82 |
|
83 |
| - If present, any Memory Operands must begin with a memory operand literal. If not |
| 83 | + If present, any Memory Operands must begin with a memory operand literal. If not |
84 | 84 | present, it is the same as specifying the memory operand None.
|
85 | 85 |
|
86 | 86 | #### Example:
|
87 | 87 | ```mlir
|
88 |
| - %0 = spv.JointMatrixLoadINTEL <Subgroup> <RowMajor> %ptr, %stride |
89 |
| - {memory_access = #spv.memory_access<Volatile>} : |
90 |
| - (!spv.ptr<i32, CrossWorkgroup>, i32) -> |
| 88 | + %0 = spv.JointMatrixLoadINTEL <Subgroup> <RowMajor> %ptr, %stride |
| 89 | + {memory_access = #spv.memory_access<Volatile>} : |
| 90 | + (!spv.ptr<i32, CrossWorkgroup>, i32) -> |
91 | 91 | !spv.jointmatrix<8x16xi32, ColumnMajor, Subgroup>
|
92 | 92 | ```
|
93 | 93 | }];
|
@@ -119,39 +119,39 @@ def SPV_JointMatrixLoadINTELOp : SPV_Op<"JointMatrixLoadINTEL", []> {
|
119 | 119 |
|
120 | 120 | // -----
|
121 | 121 |
|
122 |
| -def SPV_JointMatrixMadINTELOp : SPV_Op<"JointMatrixMadINTEL", |
| 122 | +def SPV_INTELJointMatrixMadOp : SPV_IntelVendorOp<"JointMatrixMad", |
123 | 123 | [NoSideEffect, AllTypesMatch<["c", "result"]>]> {
|
124 | 124 | let summary = "See extension SPV_INTEL_joint_matrix";
|
125 | 125 |
|
126 | 126 | let description = [{
|
127 |
| - Multiply matrix A by matrix B and add matrix C to the result |
128 |
| - of the multiplication: A*B+C. Here A is a M x K matrix, B is |
| 127 | + Multiply matrix A by matrix B and add matrix C to the result |
| 128 | + of the multiplication: A*B+C. Here A is a M x K matrix, B is |
129 | 129 | a K x N matrix and C is a M x N matrix.
|
130 | 130 |
|
131 |
| - Behavior is undefined if sizes of operands do not meet the |
132 |
| - conditions above. All operands and the Result Type must be |
| 131 | + Behavior is undefined if sizes of operands do not meet the |
| 132 | + conditions above. All operands and the Result Type must be |
133 | 133 | OpTypeJointMatrixINTEL.
|
134 | 134 |
|
135 |
| - A must be a OpTypeJointMatrixINTEL whose Component Type is a |
136 |
| - signed numerical type, Row Count equals to M and Column Count |
| 135 | + A must be a OpTypeJointMatrixINTEL whose Component Type is a |
| 136 | + signed numerical type, Row Count equals to M and Column Count |
137 | 137 | equals to K
|
138 | 138 |
|
139 |
| - B must be a OpTypeJointMatrixINTEL whose Component Type is a |
140 |
| - signed numerical type, Row Count equals to K and Column Count |
| 139 | + B must be a OpTypeJointMatrixINTEL whose Component Type is a |
| 140 | + signed numerical type, Row Count equals to K and Column Count |
141 | 141 | equals to N
|
142 | 142 |
|
143 |
| - C and Result Type must be a OpTypeJointMatrixINTEL with Row |
| 143 | + C and Result Type must be a OpTypeJointMatrixINTEL with Row |
144 | 144 | Count equals to M and Column Count equals to N
|
145 | 145 |
|
146 |
| - Scope is syncronization scope for operation on the matrix. |
147 |
| - It must be the result of a constant instruction with scalar |
| 146 | + Scope is syncronization scope for operation on the matrix. |
| 147 | + It must be the result of a constant instruction with scalar |
148 | 148 | integer type.
|
149 | 149 |
|
150 | 150 | #### Example:
|
151 | 151 | ```mlir
|
152 |
| - %r = spv.JointMatrixMadINTEL <Subgroup> %a, %b, %c : |
153 |
| - !spv.jointmatrix<8x32xi8, RowMajor, Subgroup>, |
154 |
| - !spv.jointmatrix<32x8xi8, ColumnMajor, Subgroup> |
| 152 | + %r = spv.JointMatrixMadINTEL <Subgroup> %a, %b, %c : |
| 153 | + !spv.jointmatrix<8x32xi8, RowMajor, Subgroup>, |
| 154 | + !spv.jointmatrix<32x8xi8, ColumnMajor, Subgroup> |
155 | 155 | -> !spv.jointmatrix<8x8xi32, RowMajor, Subgroup>
|
156 | 156 | ```
|
157 | 157 |
|
@@ -182,38 +182,38 @@ def SPV_JointMatrixMadINTELOp : SPV_Op<"JointMatrixMadINTEL",
|
182 | 182 |
|
183 | 183 | // -----
|
184 | 184 |
|
185 |
| -def SPV_JointMatrixStoreINTELOp : SPV_Op<"JointMatrixStoreINTEL", []> { |
| 185 | +def SPV_INTELJointMatrixStoreOp : SPV_IntelVendorOp<"JointMatrixStore", []> { |
186 | 186 | let summary = "See extension SPV_INTEL_joint_matrix";
|
187 | 187 |
|
188 | 188 | let description = [{
|
189 | 189 | Store a matrix through a pointer.
|
190 | 190 |
|
191 |
| - Pointer is the pointer to store through. It specifies |
192 |
| - start of memory region where elements of the matrix must |
| 191 | + Pointer is the pointer to store through. It specifies |
| 192 | + start of memory region where elements of the matrix must |
193 | 193 | be stored and arranged according to Layout.
|
194 | 194 |
|
195 |
| - Object is the matrix to store. It must be |
| 195 | + Object is the matrix to store. It must be |
196 | 196 | OpTypeJointMatrixINTEL.
|
197 | 197 |
|
198 |
| - Stride is the number of elements in memory between beginnings |
199 |
| - of successive rows, columns (or words) of the Object. It must |
| 198 | + Stride is the number of elements in memory between beginnings |
| 199 | + of successive rows, columns (or words) of the Object. It must |
200 | 200 | be a scalar integer type.
|
201 | 201 |
|
202 |
| - Layout indicates how the values stored to memory are arranged. |
| 202 | + Layout indicates how the values stored to memory are arranged. |
203 | 203 | It must be the result of a constant instruction.
|
204 | 204 |
|
205 |
| - Scope is syncronization scope for operation on the matrix. |
206 |
| - It must be the result of a constant instruction with scalar |
| 205 | + Scope is syncronization scope for operation on the matrix. |
| 206 | + It must be the result of a constant instruction with scalar |
207 | 207 | integer type.
|
208 | 208 |
|
209 |
| - If present, any Memory Operands must begin with a memory operand |
210 |
| - literal. If not present, it is the same as specifying the memory |
| 209 | + If present, any Memory Operands must begin with a memory operand |
| 210 | + literal. If not present, it is the same as specifying the memory |
211 | 211 | operand None.
|
212 | 212 |
|
213 | 213 | #### Example:
|
214 | 214 | ```mlir
|
215 |
| - spv.JointMatrixStoreINTEL <Subgroup> <ColumnMajor> %ptr, %m, %stride |
216 |
| - {memory_access = #spv.memory_access<Volatile>} : (!spv.ptr<i32, Workgroup>, |
| 215 | + spv.JointMatrixStoreINTEL <Subgroup> <ColumnMajor> %ptr, %m, %stride |
| 216 | + {memory_access = #spv.memory_access<Volatile>} : (!spv.ptr<i32, Workgroup>, |
217 | 217 | !spv.jointmatrix<8x16xi32, RowMajor, Subgroup>, i32)
|
218 | 218 | ```
|
219 | 219 |
|
|
0 commit comments