@@ -77,8 +77,8 @@ func.func @circular_dma_cpy_nd_unit_between_linear(%arg0: !amdaie.logicalobjectf
7777// -----
7878
7979// CHECK-LABEL: func.func @circular_dma_cpy_nd_non_zero_offset
80- // CHECK: amdaie.circular_dma_cpy_nd(%{{.+}}[25, 1 ] [8, 16 ] [16, 1], %{{.+}}[5, 1, 1 ] [4, 2, 8 ] [16, 8, 1])
81- // FOLD-SINGLE-DIMS: amdaie.circular_dma_cpy_nd(%{{.+}}[25, 1 ] [8, 16 ] [16, 1], %{{.+}}[5, 1, 1 ] [4, 2, 8 ] [16, 8, 1])
80+ // CHECK: amdaie.circular_dma_cpy_nd(%{{.+}}[401 ] [128 ] [1], %{{.+}}[89 ] [64 ] [1])
81+ // FOLD-SINGLE-DIMS: amdaie.circular_dma_cpy_nd(%{{.+}}[401 ] [128 ] [1], %{{.+}}[89 ] [64 ] [1])
8282func.func @circular_dma_cpy_nd_non_zero_offset (%arg0: !amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, %arg1: !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>) {
8383 %0 = amdaie.circular_dma_cpy_nd (%arg0 [2 , 1 , 1 , 1 ] [1 , 1 , 8 , 16 ] [128 , 128 , 16 , 1 ], %arg1 [1 , 1 , 1 , 1 ] [1 , 4 , 2 , 8 ] [64 , 16 , 8 , 1 ]) : (!amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>)
8484 " iree.keep" (%0 ) : (index ) -> ()
@@ -87,6 +87,17 @@ func.func @circular_dma_cpy_nd_non_zero_offset(%arg0: !amdaie.logicalobjectfifo<
8787
8888// -----
8989
90+ // CHECK-LABEL: func.func @circular_dma_cpy_nd_non_zero_dynamic_offset
91+ // CHECK: amdaie.circular_dma_cpy_nd(%{{.+}}[%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 1, 8, 16] [128, 128, 16, 1], %{{.+}}[%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 4, 2, 8] [64, 16, 8, 1])
92+ // FOLD-SINGLE-DIMS: amdaie.circular_dma_cpy_nd(%{{.+}}[%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 1, 8, 16] [128, 128, 16, 1], %{{.+}}[%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 4, 2, 8] [64, 16, 8, 1])
93+ func.func @circular_dma_cpy_nd_non_zero_dynamic_offset (%arg0: !amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, %arg1: !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>, %arg2: index ) {
94+ %0 = amdaie.circular_dma_cpy_nd (%arg0 [%arg2 , %arg2 , %arg2 , %arg2 ] [1 , 1 , 8 , 16 ] [128 , 128 , 16 , 1 ], %arg1 [%arg2 , %arg2 , %arg2 , %arg2 ] [1 , 4 , 2 , 8 ] [64 , 16 , 8 , 1 ]) : (!amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>)
95+ " iree.keep" (%0 ) : (index ) -> ()
96+ return
97+ }
98+
99+ // -----
100+
90101// CHECK-LABEL: func.func @circular_dma_cpy_nd_partial_non_zero_offset
91102// CHECK: amdaie.circular_dma_cpy_nd(%{{.+}}[1] [128] [1], %{{.+}}[1] [64] [1])
92103// FOLD-SINGLE-DIMS: amdaie.circular_dma_cpy_nd(%{{.+}}[1] [128] [1], %{{.+}}[1] [64] [1])
@@ -174,8 +185,8 @@ func.func @dma_cpy_nd_unit_between_linear(%arg0: !amdaie.logicalobjectfifo<memre
174185// -----
175186
176187// CHECK-LABEL: func.func @dma_cpy_nd_non_zero_offset
177- // CHECK: amdaie.dma_cpy_nd(%{{.+}}[25, 1 ] [8, 16 ] [16, 1], %{{.+}}[5, 1, 1 ] [4, 2, 8 ] [16, 8, 1])
178- // FOLD-SINGLE-DIMS: amdaie.dma_cpy_nd(%{{.+}}[25, 1 ] [8, 16 ] [16, 1], %{{.+}}[5, 1, 1 ] [4, 2, 8 ] [16, 8, 1])
188+ // CHECK: amdaie.dma_cpy_nd(%{{.+}}[401 ] [128 ] [1], %{{.+}}[89 ] [64 ] [1])
189+ // FOLD-SINGLE-DIMS: amdaie.dma_cpy_nd(%{{.+}}[401 ] [128 ] [1], %{{.+}}[89 ] [64 ] [1])
179190func.func @dma_cpy_nd_non_zero_offset (%arg0: !amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, %arg1: !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>) {
180191 %0 = amdaie.dma_cpy_nd (%arg0 [1 , 2 , 1 , 1 ] [1 , 1 , 8 , 16 ] [128 , 128 , 16 , 1 ], %arg1 [1 , 1 , 1 , 1 ] [1 , 4 , 2 , 8 ] [64 , 16 , 8 , 1 ]) : (!amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>)
181192 " iree.keep" (%0 ) : (index ) -> ()
@@ -184,6 +195,17 @@ func.func @dma_cpy_nd_non_zero_offset(%arg0: !amdaie.logicalobjectfifo<memref<1x
184195
185196// -----
186197
198+ // CHECK-LABEL: func.func @dma_cpy_nd_non_zero_dynamic_offset
199+ // CHECK: amdaie.dma_cpy_nd(%{{.+}}[%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 1, 8, 16] [128, 128, 16, 1], %{{.+}}[%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 4, 2, 8] [64, 16, 8, 1])
200+ // FOLD-SINGLE-DIMS: amdaie.dma_cpy_nd(%{{.+}}[%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 1, 8, 16] [128, 128, 16, 1], %{{.+}}[%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 4, 2, 8] [64, 16, 8, 1])
201+ func.func @dma_cpy_nd_non_zero_dynamic_offset (%arg0: !amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, %arg1: !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>, %arg2: index ) {
202+ %0 = amdaie.dma_cpy_nd (%arg0 [%arg2 , %arg2 , %arg2 , %arg2 ] [1 , 1 , 8 , 16 ] [128 , 128 , 16 , 1 ], %arg1 [%arg2 , %arg2 , %arg2 , %arg2 ] [1 , 4 , 2 , 8 ] [64 , 16 , 8 , 1 ]) : (!amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>)
203+ " iree.keep" (%0 ) : (index ) -> ()
204+ return
205+ }
206+
207+ // -----
208+
187209// CHECK-LABEL: func.func @dma_cpy_nd_partial_non_zero_offset
188210// CHECK: amdaie.dma_cpy_nd(%{{.+}}[1] [128] [1], %{{.+}}[1] [64] [1])
189211// FOLD-SINGLE-DIMS: amdaie.dma_cpy_nd(%{{.+}}[1] [128] [1], %{{.+}}[1] [64] [1])
@@ -273,8 +295,8 @@ func.func @npu_dma_cpy_nd_unit_between_linear(%arg0: !amdaie.logicalobjectfifo<m
273295// -----
274296
275297// CHECK-LABEL: func.func @npu_dma_cpy_nd_non_zero_offset
276- // CHECK: amdaie.npu.dma_cpy_nd %{{.+}}([25, 1 ] [8, 16 ] [16, 1], [5, 1, 1 ] [4, 2, 8 ] [16, 8, 1])
277- // FOLD-SINGLE-DIMS: amdaie.npu.dma_cpy_nd %{{.+}}([25, 1 ] [8, 16 ] [16, 1], [5, 1, 1 ] [4, 2, 8 ] [16, 8, 1])
298+ // CHECK: amdaie.npu.dma_cpy_nd %{{.+}}([401 ] [128 ] [1], [89 ] [64 ] [1])
299+ // FOLD-SINGLE-DIMS: amdaie.npu.dma_cpy_nd %{{.+}}([401 ] [128 ] [1], [89 ] [64 ] [1])
278300func.func @npu_dma_cpy_nd_non_zero_offset (%arg0: !amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, %arg1: !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>) {
279301 %0 = amdaie.circular_dma_cpy_nd (%arg0 [] [] [], %arg1 [] [] []) : (!amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>)
280302 amdaie.npu.dma_cpy_nd %0 ([1 , 2 , 1 , 1 ] [1 , 1 , 8 , 16 ] [128 , 128 , 16 , 1 ], [1 , 1 , 1 , 1 ] [1 , 4 , 2 , 8 ] [64 , 16 , 8 , 1 ])
@@ -283,6 +305,17 @@ func.func @npu_dma_cpy_nd_non_zero_offset(%arg0: !amdaie.logicalobjectfifo<memre
283305
284306// -----
285307
308+ // CHECK-LABEL: func.func @npu_dma_cpy_nd_dynamic_non_zero_offset
309+ // CHECK: amdaie.npu.dma_cpy_nd %{{.+}}([%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 1, 8, 16] [128, 128, 16, 1], [%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 4, 2, 8] [64, 16, 8, 1])
310+ // FOLD-SINGLE-DIMS: amdaie.npu.dma_cpy_nd %{{.+}}([%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 1, 8, 16] [128, 128, 16, 1], [%{{.+}}, %{{.+}}, %{{.+}}, %{{.+}}] [1, 4, 2, 8] [64, 16, 8, 1])
311+ func.func @npu_dma_cpy_nd_dynamic_non_zero_offset (%arg0: !amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, %arg1: !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>, %arg2: index ) {
312+ %0 = amdaie.circular_dma_cpy_nd (%arg0 [] [] [], %arg1 [] [] []) : (!amdaie.logicalobjectfifo <memref <1 x1 x8 x16 xi32 , 1 >>, !amdaie.logicalobjectfifo <memref <8 x16 xi32 , 1 >>)
313+ amdaie.npu.dma_cpy_nd %0 ([%arg2 , %arg2 , %arg2 , %arg2 ] [1 , 1 , 8 , 16 ] [128 , 128 , 16 , 1 ], [%arg2 , %arg2 , %arg2 , %arg2 ] [1 , 4 , 2 , 8 ] [64 , 16 , 8 , 1 ])
314+ return
315+ }
316+
317+ // -----
318+
286319// CHECK-LABEL: func.func @npu_dma_cpy_nd_partial_non_zero_offset
287320// CHECK: amdaie.npu.dma_cpy_nd %{{.+}}([1] [128] [1], [1] [64] [1])
288321// FOLD-SINGLE-DIMS: amdaie.npu.dma_cpy_nd %{{.+}}([1] [128] [1], [1] [64] [1])
0 commit comments