@@ -64,11 +64,11 @@ func.func @core() {
6464// CHECK-SAME: %[[ARG0:.+]]: memref<1x1x8x16xi32, 1>, %[[ARG1:.+]]: memref<8x16xi32>
6565// CHECK: amdaie.workgroup
6666// CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
67+ // CHECK: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]], {} : memref<8x16xi32> -> !amdaie.logicalobjectfifo<memref<8x16xi32>>
6768// CHECK-DAG: %[[PLACEHOLDER:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<8x16xi32>>
6869// CHECK: %[[CONNECTION:.+]] = amdaie.connection(%[[FROMMEMREF0]], %[[PLACEHOLDER]])
6970// CHECK-SAME: (!amdaie.logicalobjectfifo<memref<1x1x8x16xi32, 1>>, !amdaie.logicalobjectfifo<memref<8x16xi32>>)
7071// CHECK: amdaie.controlcode
71- // CHECK: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]], {} : memref<8x16xi32> -> !amdaie.logicalobjectfifo<memref<8x16xi32>>
7272// CHECK: amdaie.npu.circular_dma_cpy_nd %[[CONNECTION]]([] [] [], [] [] [])
7373// CHECK: %[[NPU_DMA:.+]] = amdaie.npu.dma_cpy_nd async_source %[[CONNECTION]]
7474// CHECK-SAME: [] [] []
@@ -87,11 +87,11 @@ func.func @dma_cpy_nd_L3_L2(%arg0: memref<1x1x8x16xi32, 1>, %arg1: memref<8x16xi
8787// CHECK-SAME: %[[ARG0:.+]]: memref<1x1x8x16xi32, 1>, %[[ARG1:.+]]: memref<8x16xi32>
8888// CHECK: amdaie.workgroup
8989// CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
90+ // CHECK: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]], {} : memref<8x16xi32> -> !amdaie.logicalobjectfifo<memref<8x16xi32>>
9091// CHECK-DAG: %[[PLACEHOLDER:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<8x16xi32>>
9192// CHECK: %[[CONNECTION:.+]] = amdaie.connection(%[[FROMMEMREF0]], %[[PLACEHOLDER]])
9293// CHECK-SAME: (!amdaie.logicalobjectfifo<memref<1x1x8x16xi32, 1>>, !amdaie.logicalobjectfifo<memref<8x16xi32>>)
9394// CHECK: amdaie.controlcode
94- // CHECK: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]], {} : memref<8x16xi32> -> !amdaie.logicalobjectfifo<memref<8x16xi32>>
9595// CHECK: amdaie.npu.circular_dma_cpy_nd %[[CONNECTION]]([0, 0, 0, 0] [1, 1, 8, 16] [128, 16, 16, 1], [] [] [])
9696// CHECK: %[[NPU_DMA:.+]] = amdaie.npu.dma_cpy_nd async_source %[[CONNECTION]]
9797// CHECK-SAME: [] [] []
@@ -109,12 +109,12 @@ func.func @dma_cpy_nd_L3_L2_target_addressing(%arg0: memref<1x1x8x16xi32, 1>, %a
109109// CHECK-LABEL: @dma_cpy_nd_L2_L3
110110// CHECK-SAME: %[[ARG0:.+]]: memref<1x1x8x16xi32>, %[[ARG1:.+]]: memref<8x16xi32, 1>
111111// CHECK: amdaie.workgroup
112- // CHECK-DAG : %[[PLACEHOLDER :.+]] = amdaie.logicalobjectfifo.placeholder {} : !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
112+ // CHECK: %[[FROMMEMREF1 :.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]], {} : memref<1x1x8x16xi32> -> !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
113113// CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]]
114+ // CHECK-DAG: %[[PLACEHOLDER:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
114115// CHECK: %[[CONNECTION:.+]] = amdaie.connection(%[[PLACEHOLDER]], %[[FROMMEMREF0]])
115116// CHECK-SAME: (!amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>, !amdaie.logicalobjectfifo<memref<8x16xi32, 1>>)
116117// CHECK: amdaie.controlcode
117- // CHECK: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]], {} : memref<1x1x8x16xi32> -> !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
118118// CHECK: amdaie.npu.circular_dma_cpy_nd %[[CONNECTION]]([] [] [], [0, 0, 0, 0] [1, 1, 8, 16] [128, 16, 16, 1])
119119// CHECK: %[[NPU_DMA:.+]] = amdaie.npu.dma_cpy_nd async_target %[[CONNECTION]](%[[FROMMEMREF1]][] [] [], [] [] [])
120120// CHECK: amdaie.npu.dma_wait(%[[NPU_DMA]] : !amdaie.async_target_token)
@@ -132,10 +132,10 @@ func.func @dma_cpy_nd_L2_L3(%arg0: memref<1x1x8x16xi32>, %arg1: memref<8x16xi32,
132132// CHECK: amdaie.workgroup
133133// CHECK-DAG: %[[PLACEHOLDER:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
134134// CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]]
135+ // CHECK-DAG: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]], {} : memref<1x1x8x16xi32> -> !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
135136// CHECK: %[[CONNECTION:.+]] = amdaie.connection(%[[PLACEHOLDER]], %[[FROMMEMREF0]])
136137// CHECK-SAME: (!amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>, !amdaie.logicalobjectfifo<memref<8x16xi32, 1>>)
137138// CHECK: amdaie.controlcode
138- // CHECK: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]], {} : memref<1x1x8x16xi32> -> !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
139139// CHECK: amdaie.npu.circular_dma_cpy_nd %[[CONNECTION]]([] [] [], [0, 0, 0, 0] [1, 1, 8, 16] [128, 16, 16, 1])
140140// CHECK: %[[NPU_DMA:.+]] = amdaie.npu.dma_cpy_nd async_target %[[CONNECTION]]
141141// CHECK-SAME: %[[FROMMEMREF1]][0, 0, 0, 0] [1, 1, 8, 16] [128, 16, 16, 1]
@@ -163,8 +163,6 @@ func.func @dma_cpy_nd_L2_L1(%arg0: memref<1x1x8x16xi32, 2>, %arg1: memref<8x16xi
163163// REPROGRAM: %[[LOF_1:.*]] = amdaie.logicalobjectfifo.from_memref
164164// REPROGRAM: %[[CONNECTION:.*]] = amdaie.connection(%[[LOF_0]], %[[LOF_1]])
165165// REPROGRAM: amdaie.controlcode {
166- // REPROGRAM: %[[LOF_0:.*]] = amdaie.logicalobjectfifo.from_memref
167- // REPROGRAM: %[[LOF_1:.*]] = amdaie.logicalobjectfifo.from_memref
168166// REPROGRAM: amdaie.npu.dma_cpy_nd async_source %[[CONNECTION]]
169167// REPROGRAM-SAME: (%[[LOF_0]][0, 0, 0, 0] [1, 1, 8, 16] [128, 16, 16, 1], %[[LOF_1]][0, 0, 0, 0] [1, 1, 8, 16] [128, 16, 16, 1]) :
170168// REPROGRAM-SAME: target_type = !amdaie.logicalobjectfifo<memref<1x1x8x16xi32, 2>> source_type = !amdaie.logicalobjectfifo<memref<8x16xi32, 1>>
@@ -241,13 +239,13 @@ func.func @for_cores() {
241239// CHECK-DAG: %[[C8:.+]] = arith.constant 8 : index
242240// CHECK-DAG: %[[PLACEHOLDER:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
243241// CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]]
242+ // CHECK-DAG: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
244243// CHECK: %[[CONNECTION:.+]] = amdaie.connection(%[[FROMMEMREF0]], %[[PLACEHOLDER]])
245244// CHECK-SAME: (!amdaie.logicalobjectfifo<memref<8x16xi32, 1>>, !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>)
246245// CHECK: amdaie.controlcode
247246// CHECK-DAG: %[[C0_1:.+]] = arith.constant 0 : index
248247// CHECK-DAG: %[[C1_1:.+]] = arith.constant 1 : index
249248// CHECK-DAG: %[[C8_1:.+]] = arith.constant 8 : index
250- // CHECK-DAG: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
251249// CHECK: scf.for %[[ARG:.+]] = %[[C0_1]] to %[[C8_1]] step %[[C1_1]]
252250// CHECK: amdaie.npu.circular_dma_cpy_nd %[[CONNECTION]]([] [] [], [] [] [])
253251// CHECK: %[[NPU_DMA:.+]] = amdaie.npu.dma_cpy_nd async_source %[[CONNECTION]]
@@ -318,11 +316,11 @@ func.func @forall_cores() {
318316// CHECK-SAME: %[[ARG0:.+]]: memref<1x1x8x16xi32>, %[[ARG1:.+]]: memref<8x16xi32, 1>
319317// CHECK: amdaie.workgroup
320318// CHECK-DAG: %[[PLACEHOLDER:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
319+ // CHECK-DAG: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
321320// CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]]
322321// CHECK: %[[CONNECTION:.+]] = amdaie.connection(%[[FROMMEMREF0]], %[[PLACEHOLDER]])
323322// CHECK-SAME: (!amdaie.logicalobjectfifo<memref<8x16xi32, 1>>, !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>)
324323// CHECK: amdaie.controlcode
325- // CHECK-DAG: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
326324// CHECK: scf.forall (%[[ARG0:.*]], %[[ARG1:.*]]) in (2, 2)
327325// CHECK: amdaie.npu.circular_dma_cpy_nd %[[CONNECTION]]([] [] [], [] [] [])
328326// CHECK: %[[NPU_DMA:.+]] = amdaie.npu.dma_cpy_nd async_source %[[CONNECTION]]
@@ -351,6 +349,7 @@ func.func @forall_dmas(%arg0: memref<1x1x8x16xi32>, %arg1: memref<8x16xi32, 1>)
351349// CHECK-DAG: %[[TILE_0:.+]] = amdaie.tile(%[[C0]], %[[C0]])
352350// CHECK-DAG: %[[TILE_1:.+]] = amdaie.tile(%[[C0]], %[[C1]])
353351// CHECK-DAG: %[[PLACEHOLDER:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
352+ // CHECK-DAG: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
354353// CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]]
355354// CHECK: %[[CONNECTION:.+]] = amdaie.connection(%[[FROMMEMREF0]], %[[PLACEHOLDER]]) : (!amdaie.logicalobjectfifo<memref<8x16xi32, 2>>, !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>)
356355// CHECK-DAG: %[[PLACEHOLDER2:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
@@ -368,7 +367,6 @@ func.func @forall_dmas(%arg0: memref<1x1x8x16xi32>, %arg1: memref<8x16xi32, 1>)
368367// CHECK-DAG: %[[C0_1:.+]] = arith.constant 0 : index
369368// CHECK-DAG: %[[C1_1:.+]] = arith.constant 1 : index
370369// CHECK-DAG: %[[C8_1:.+]] = arith.constant 8 : index
371- // CHECK-DAG: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
372370// CHECK: amdaie.npu.circular_dma_cpy_nd %[[CONNECTION]]([] [] [], [] [] [])
373371// CHECK: %[[NPU_DMA:.+]] = amdaie.npu.dma_cpy_nd async_source %[[CONNECTION]]([] [] [], %[[FROMMEMREF1]][0, 0, 0, 0] [1, 1, 8, 16] [128, 16, 16, 1])
374372// CHECK: amdaie.npu.dma_wait(%[[NPU_DMA]] : !amdaie.async_source_token)
@@ -421,6 +419,9 @@ func.func @merge_cores(%arg0: memref<1x1x8x16xi32>, %arg1: memref<8x16xi32, 2>)
421419// CHECK-DAG: %[[FROMMEMREF1:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG1]]
422420// CHECK-DAG: %[[FROMMEMREF3:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG3]]
423421// CHECK-DAG: %[[FROMMEMREF5:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG5]]
422+ // CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
423+ // CHECK-DAG: %[[FROMMEMREF2:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG2]]
424+ // CHECK-DAG: %[[FROMMEMREF4:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG4]]
424425// CHECK-DAG: %[[PLACEHOLDER0:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>
425426// CHECK-DAG: %[[CONNECTION0:.+]] = amdaie.connection(%[[FROMMEMREF1]], %[[PLACEHOLDER0]]) : (!amdaie.logicalobjectfifo<memref<8x16xi32, 2>>, !amdaie.logicalobjectfifo<memref<1x1x8x16xi32>>)
426427// CHECK-DAG: %[[PLACEHOLDER1:.+]] = amdaie.logicalobjectfifo.placeholder{} : !amdaie.logicalobjectfifo<memref<1x1x16x16xi32>>
@@ -438,9 +439,6 @@ func.func @merge_cores(%arg0: memref<1x1x8x16xi32>, %arg1: memref<8x16xi32, 2>)
438439// CHECK: amdaie.logicalobjectfifo.access(%[[FROMMEMREF5]], Read)
439440// CHECK: linalg.fill
440441// CHECK: amdaie.controlcode
441- // CHECK-DAG: %[[FROMMEMREF0:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG0]]
442- // CHECK-DAG: %[[FROMMEMREF2:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG2]]
443- // CHECK-DAG: %[[FROMMEMREF4:.+]] = amdaie.logicalobjectfifo.from_memref %[[ARG4]]
444442// CHECK-DAG: %[[C0_1:.+]] = arith.constant 0 : index
445443// CHECK-DAG: %[[C1_1:.+]] = arith.constant 1 : index
446444// CHECK-DAG: %[[C8_1:.+]] = arith.constant 8 : index
0 commit comments