@@ -455,10 +455,9 @@ func.func @unpack_on_output(%arg0: tensor<12x2x56x56x32xf32>) -> tensor<12x56x56
455455// CHECK: %[[UNPACKED_ARG0:.+]] = linalg.unpack %[[ARG0]]
456456// CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
457457// CHECK-SAME: into %[[ARG0_EMPTY_UNPACK]]
458- // CHECK: %[[EMPTY:.+]] = tensor.empty() : tensor<12x2x56x56x32xf32>
459458// CHECK: %[[RES:.+]] = linalg.generic
460459// CHECK-SAME: indexing_maps = [#[[$MAP]]]
461- // CHECK-SAME: outs(%[[EMPTY ]]
460+ // CHECK-SAME: outs(%[[ARG0 ]]
462461// CHECK: %[[UNPACK:.+]] = linalg.unpack %[[RES]]
463462// CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
464463// CHECK-SAME: into %[[UNPACKED_ARG0]]
@@ -482,11 +481,14 @@ func.func @unpack_on_input(%arg0: tensor<12x2x56x56x32xf32>, %init: tensor<12x56
482481// CHECK-LABEL: func.func @unpack_on_input
483482// CHECK-SAME: %[[ARG0:[a-zA-Z0-9]+]]
484483// CHECK-SAME: %[[ARG1:[a-zA-Z0-9]+]]
485- // CHECK: %[[EMPTY:.+]] = tensor.empty() : tensor<12x2x56x56x32xf32>
484+ // CHECK: %[[ARG1_PACK_EMPTY:.+]] = tensor.empty() : tensor<12x2x56x56x32xf32>
485+ // CHECK: %[[ARG1_PACK:.+]] = linalg.pack %[[ARG1]]
486+ // CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
487+ // CHECK-SAME: into %[[ARG1_PACK_EMPTY]]
486488// CHECK: %[[RES:.+]] = linalg.generic
487489// CHECK-SAME: indexing_maps = [#[[$MAP]], #[[$MAP]]]
488490// CHECK-SAME: ins(%[[ARG0]]
489- // CHECK-SAME: outs(%[[EMPTY ]]
491+ // CHECK-SAME: outs(%[[ARG1_PACK ]]
490492// CHECK: %[[UNPACK:.+]] = linalg.unpack %[[RES]]
491493// CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
492494// CHECK-SAME: into %[[ARG1]]
@@ -510,11 +512,14 @@ func.func @unpack_element_type_change(%arg0: tensor<12x2x56x56x32xf32>, %init: t
510512// CHECK-LABEL: func.func @unpack_element_type_change
511513// CHECK-SAME: %[[ARG0:[a-zA-Z0-9]+]]
512514// CHECK-SAME: %[[ARG1:[a-zA-Z0-9]+]]
513- // CHECK: %[[EMPTY:.+]] = tensor.empty() : tensor<12x2x56x56x32xf16>
515+ // CHECK: %[[ARG1_PACK_EMPTY:.+]] = tensor.empty() : tensor<12x2x56x56x32xf16>
516+ // CHECK: %[[ARG1_PACK:.+]] = linalg.pack %[[ARG1]]
517+ // CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
518+ // CHECK-SAME: into %[[ARG1_PACK_EMPTY]]
514519// CHECK: %[[RES:.+]] = linalg.generic
515520// CHECK-SAME: indexing_maps = [#[[$MAP]], #[[$MAP]]]
516521// CHECK-SAME: ins(%[[ARG0]]
517- // CHECK-SAME: outs(%[[EMPTY ]]
522+ // CHECK-SAME: outs(%[[ARG1_PACK ]]
518523// CHECK: %[[UNPACK:.+]] = linalg.unpack %[[RES]]
519524// CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
520525// CHECK-SAME: into %[[ARG1]]
@@ -1397,10 +1402,13 @@ func.func @push_unpack_in_padded_domain_foldable(%arg0: tensor<8x8x4x8xf32>, %de
13971402// CHECK-SAME: %[[ARG0:[a-zA-Z0-9]+]]
13981403// CHECK-SAME: %[[ARG1:[a-zA-Z0-9]+]]
13991404// CHECK-SAME: %[[ARG2:[a-zA-Z0-9]+]]
1400- // CHECK: %[[EMPTY:.+]] = tensor.empty
1405+ // CHECK: %[[ARG2_PACK_EMPTY:.+]] = tensor.empty
1406+ // CHECK: %[[ARG2_PACK:.+]] = linalg.pack %[[ARG2]]
1407+ // CHECK-SAME: inner_dims_pos = [0, 1] inner_tiles = [4, 8]
1408+ // CHECK-SAME: into %[[ARG2_PACK_EMPTY]]
14011409// CHECK: %[[GENERIC:.+]] = linalg.generic
14021410// CHECK-SAME: ins(%[[ARG0]] : tensor<8x8x4x8xf32>)
1403- // CHECK-SAME: outs(%[[EMPTY ]] : tensor<?x8x4x8xbf16>)
1411+ // CHECK-SAME: outs(%[[ARG2_PACK ]] : tensor<?x8x4x8xbf16>)
14041412// CHECK: %[[UNPACK:.+]] = linalg.unpack %[[GENERIC]]
14051413// CHECK-SAME: into %[[ARG2]]
14061414// CHECK: return %[[UNPACK]] : tensor<?x64xbf16>
@@ -1419,10 +1427,13 @@ func.func @push_unpack_in_padded_domain_out_used(%arg0: tensor<8x8x4x8xf32>, %ar
14191427// CHECK-LABEL: func.func @push_unpack_in_padded_domain_out_used
14201428// CHECK-SAME: %[[ARG0:[a-zA-Z0-9]+]]
14211429// CHECK-SAME: %[[ARG1:[a-zA-Z0-9]+]]
1422- // CHECK: %[[EMPTY:.+]] = tensor.empty
1430+ // CHECK: %[[ARG1_PACK_EMPTY:.+]] = tensor.empty
1431+ // CHECK: %[[ARG1_PACK:.+]] = linalg.pack %[[ARG1]]
1432+ // CHECK-SAME: inner_dims_pos = [0, 1] inner_tiles = [4, 8]
1433+ // CHECK-SAME: into %[[ARG1_PACK_EMPTY]]
14231434// CHECK: %[[GENERIC:.+]] = linalg.generic
14241435// CHECK-SAME: ins(%[[ARG0]] : tensor<8x8x4x8xf32>)
1425- // CHECK-SAME: outs(%[[EMPTY ]] : tensor<?x8x4x8xf32>)
1436+ // CHECK-SAME: outs(%[[ARG1_PACK ]] : tensor<?x8x4x8xf32>)
14261437// CHECK: %[[UNPACK2:.+]] = linalg.unpack %[[GENERIC]]
14271438// CHECK-SAME: into %[[ARG1]]
14281439// CHECK: return %[[UNPACK2]] : tensor<?x64xf32>
0 commit comments