@@ -471,4 +471,70 @@ func.func @forward_tensor_empty(%arg0: tensor<12x2x56x56x32xf32>) -> tensor<12x5
471
471
// CHECK-SAME: outs(%[[DEST]]
472
472
// CHECK: %[[UNPACKED:.+]] = tensor.unpack %[[RES]]
473
473
// CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
474
- // CHECK-SAME: into %[[ARG0_UNPACK_EMPTY]]
474
+ // CHECK-SAME: into %[[ARG0_UNPACK_EMPTY]]
475
+
476
+ // -----
477
+
478
+ func.func @pad_valid_propagation (%arg0: tensor <1 x2 x56 x56 x32 xf32 >) -> tensor <1 x58 x58 x64 xf32 > {
479
+ %cst = arith.constant 0.000000e+00 : f32
480
+ %0 = tensor.empty () : tensor <1 x56 x56 x64 xf32 >
481
+ %1 = tensor.unpack %arg0 outer_dims_perm = [0 , 3 , 1 , 2 ] inner_dims_pos = [3 ] inner_tiles = [32 ] into %0 : tensor <1 x2 x56 x56 x32 xf32 > -> tensor <1 x56 x56 x64 xf32 >
482
+ %padded = tensor.pad %1 low [0 , 1 , 1 , 0 ] high [0 , 1 , 1 , 0 ] {
483
+ ^bb0 (%arg3: index , %arg4: index , %arg5: index , %arg6: index ):
484
+ tensor.yield %cst : f32
485
+ } : tensor <1 x56 x56 x64 xf32 > to tensor <1 x58 x58 x64 xf32 >
486
+ return %padded : tensor <1 x58 x58 x64 xf32 >
487
+ }
488
+
489
+ // CHECK: func.func @pad_valid_propagation(
490
+ // CHECK-SAME: %[[ARG0:.+]]: tensor<1x2x56x56x32xf32>)
491
+ // CHECK: %[[CST:.+]] = arith.constant 0.000000e+00 : f32
492
+ // CHECK: %[[PADDED:.+]] = tensor.pad %[[ARG0]] low[0, 0, 1, 1, 0] high[0, 0, 1, 1, 0]
493
+ // CHECK: %[[EMPTY:.+]] = tensor.empty() : tensor<1x58x58x64xf32>
494
+ // CHECK: %[[UNPACK:.+]] = tensor.unpack %[[PADDED]]
495
+ // CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
496
+ // CHECK-SAME: into %[[EMPTY]] : tensor<1x2x58x58x32xf32> -> tensor<1x58x58x64xf32>
497
+
498
+ // -----
499
+
500
+ func.func @pad_valid_propagation (%arg0: tensor <1 x2 x56 x56 x32 xf32 >) -> tensor <2 x58 x58 x64 xf32 > {
501
+ %cst = arith.constant 0.000000e+00 : f32
502
+ %0 = tensor.empty () : tensor <1 x56 x56 x64 xf32 >
503
+ %1 = tensor.unpack %arg0 outer_dims_perm = [0 , 3 , 1 , 2 ] inner_dims_pos = [3 ] inner_tiles = [32 ] into %0 : tensor <1 x2 x56 x56 x32 xf32 > -> tensor <1 x56 x56 x64 xf32 >
504
+ %padded = tensor.pad %1 low [1 , 1 , 1 , 0 ] high [0 , 1 , 1 , 0 ] {
505
+ ^bb0 (%arg3: index , %arg4: index , %arg5: index , %arg6: index ):
506
+ tensor.yield %cst : f32
507
+ } : tensor <1 x56 x56 x64 xf32 > to tensor <2 x58 x58 x64 xf32 >
508
+ return %padded : tensor <2 x58 x58 x64 xf32 >
509
+ }
510
+
511
+ // CHECK: func.func @pad_valid_propagation(
512
+ // CHECK-SAME: %[[ARG0:.+]]: tensor<1x2x56x56x32xf32>)
513
+ // CHECK: %[[CST:.+]] = arith.constant 0.000000e+00 : f32
514
+ // CHECK: %[[PADDED:.+]] = tensor.pad %[[ARG0]] low[1, 0, 1, 1, 0] high[0, 0, 1, 1, 0]
515
+ // CHECK: %[[EMPTY:.+]] = tensor.empty() : tensor<2x58x58x64xf32>
516
+ // CHECK: %[[UNPACK:.+]] = tensor.unpack %[[PADDED]]
517
+ // CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
518
+ // CHECK-SAME: into %[[EMPTY]] : tensor<2x2x58x58x32xf32> -> tensor<2x58x58x64xf32>
519
+
520
+ // -----
521
+
522
+ func.func @pad_along_unpacked_dim (%arg0: tensor <1 x2 x56 x56 x32 xf32 >) -> tensor <1 x58 x58 x66 xf32 > {
523
+ %cst = arith.constant 0.000000e+00 : f32
524
+ %0 = tensor.empty () : tensor <1 x56 x56 x64 xf32 >
525
+ %1 = tensor.unpack %arg0 outer_dims_perm = [0 , 3 , 1 , 2 ] inner_dims_pos = [3 ] inner_tiles = [32 ] into %0 : tensor <1 x2 x56 x56 x32 xf32 > -> tensor <1 x56 x56 x64 xf32 >
526
+ %padded = tensor.pad %1 low [0 , 1 , 1 , 1 ] high [0 , 1 , 1 , 1 ] {
527
+ ^bb0 (%arg3: index , %arg4: index , %arg5: index , %arg6: index ):
528
+ tensor.yield %cst : f32
529
+ } : tensor <1 x56 x56 x64 xf32 > to tensor <1 x58 x58 x66 xf32 >
530
+ return %padded : tensor <1 x58 x58 x66 xf32 >
531
+ }
532
+
533
+ // CHECK: func.func @pad_along_unpacked_dim(
534
+ // CHECK: %[[ARG0:.+]]: tensor<1x2x56x56x32xf32>)
535
+ // CHECK: %[[CST:.+]] = arith.constant 0.000000e+00 : f32
536
+ // CHECK: %[[EMPTY:.+]] = tensor.empty() : tensor<1x56x56x64xf32>
537
+ // CHECK: %[[UNPACK:.+]] = tensor.unpack %[[ARG0]]
538
+ // CHECK-SAME: outer_dims_perm = [0, 3, 1, 2] inner_dims_pos = [3] inner_tiles = [32]
539
+ // CHECK-SAME: into %[[EMPTY]] : tensor<1x2x56x56x32xf32> -> tensor<1x56x56x64xf32>
540
+ // CHECK: %[[PADDED:.+]] = tensor.pad %[[UNPACK]] low[0, 1, 1, 1] high[0, 1, 1, 1]
0 commit comments