@@ -36,7 +36,7 @@ class Linalg_RelayoutOp<string mnemonic, list<Trait> traits = []> :
36
36
DestinationStyleOpInterface, LinalgRelayoutOpInterface,
37
37
ConditionallySpeculatable, DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
38
38
DeclareOpInterfaceMethods<ReifyRankedShapedTypeOpInterface>,
39
- TypesMatchWith <"result type matches type of dest",
39
+ OptionalTypesMatchWith <"result type matches type of dest",
40
40
"dest", "result",
41
41
"$_self">])> {
42
42
@@ -175,16 +175,9 @@ def Linalg_PackOp : Linalg_RelayoutOp<"pack", [
175
175
DenseI64ArrayAttr:$inner_dims_pos,
176
176
Variadic<Index>:$inner_tiles,
177
177
DenseI64ArrayAttr:$static_inner_tiles);
178
- let results = (outs AnyShaped:$result);
179
- let assemblyFormat = [{
180
- $source
181
- (`padding_value` `(` $padding_value^ `:` type($padding_value) `)`)?
182
- (`outer_dims_perm` `=` $outer_dims_perm^)?
183
- `inner_dims_pos` `=` $inner_dims_pos
184
- `inner_tiles` `=`
185
- custom<DynamicIndexList>($inner_tiles, $static_inner_tiles)
186
- `into` $dest attr-dict `:` type($source) `->` type($dest)
187
- }];
178
+ let results = (outs Optional<AnyRankedTensor>:$result);
179
+
180
+ let hasCustomAssemblyFormat = 1;
188
181
189
182
let builders = [
190
183
OpBuilder<(ins "Value":$source, "Value":$dest,
@@ -335,15 +328,9 @@ def Linalg_UnPackOp : Linalg_RelayoutOp<"unpack"> {
335
328
DenseI64ArrayAttr:$inner_dims_pos,
336
329
Variadic<Index>:$inner_tiles,
337
330
DenseI64ArrayAttr:$static_inner_tiles);
338
- let results = (outs AnyShaped:$result);
339
- let assemblyFormat = [{
340
- $source
341
- (`outer_dims_perm` `=` $outer_dims_perm^)?
342
- `inner_dims_pos` `=` $inner_dims_pos
343
- `inner_tiles` `=`
344
- custom<DynamicIndexList>($inner_tiles, $static_inner_tiles)
345
- `into` $dest attr-dict `:` type($source) `->` type($dest)
346
- }];
331
+ let results = (outs Optional<AnyRankedTensor>:$result);
332
+
333
+ let hasCustomAssemblyFormat = 1;
347
334
348
335
let builders = [
349
336
OpBuilder<(ins "Value":$source, "Value":$dest,
0 commit comments