Skip to content

Commit 342df56

Browse files
[Reprogram] Add fix for handling Lof.from_memref + amdaie.buffer address attr as i32 (#1333)
-- This commit adds a fix for handling logicalobjectfifo.from_memref to have a common logicalobjectfifo defined for any given connection as part of `create-aie-workgroup` pass. -- This also changes `amdaie.buffer` op to have `address` attribute as `i32` instead of `ui32` to be compatible with `aie.buffer`. -- This is being added to AMDAIE dialect to make [DMA reprogramming](#1287) work. Signed-off-by: Abhishek Varma <[email protected]>
1 parent 34afaa9 commit 342df56

File tree

6 files changed

+38
-20
lines changed

6 files changed

+38
-20
lines changed

compiler/plugins/target/AMD-AIE/iree-amd-aie/IR/AMDAIEOps.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ def AMDAIE_BufferOp: AMDAIE_Op<"buffer", [
256256
let arguments = (
257257
ins Index:$tile,
258258
OptionalAttr<StrAttr>:$sym_name,
259-
OptionalAttr<UI32Attr>:$address,
259+
OptionalAttr<I32Attr>:$address,
260260
OptionalAttr<UI32Attr>:$mem_bank
261261
);
262262

compiler/plugins/target/AMD-AIE/iree-amd-aie/IR/test/roundtrip.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ func.func @bd_id() {
1919
// CHECK: %[[TILE_0:.*]] = amdaie.tile(%[[C0]], %[[C0]])
2020
// CHECK: %[[TILE_1:.*]] = amdaie.tile(%[[C0]], %[[C1]])
2121
// CHECK: %[[BUFFER:.*]] = amdaie.buffer(%[[TILE_0]]) : memref<1024xi32>
22-
// CHECK: %[[BUFFER_1:.*]] = amdaie.buffer(%[[TILE_1]]) {address = 0 : ui32, mem_bank = 0 : ui32, sym_name = "a"} : memref<1024xi32, 1 : i32>
22+
// CHECK: %[[BUFFER_1:.*]] = amdaie.buffer(%[[TILE_1]]) {address = 0 : i32, mem_bank = 0 : ui32, sym_name = "a"} : memref<1024xi32, 1 : i32>
2323
func.func @buffer() {
2424
%c0 = arith.constant 0 : index
2525
%c1 = arith.constant 1 : index
2626
%tile = amdaie.tile(%c0, %c0)
2727
%tile_1 = amdaie.tile(%c0, %c1)
2828
%buffer = amdaie.buffer(%tile) : memref<1024xi32>
29-
%buffer_1 = amdaie.buffer(%tile_1) {sym_name = "a", address = 0 : ui32, mem_bank = 0 : ui32} : memref<1024xi32, 1 : i32>
29+
%buffer_1 = amdaie.buffer(%tile_1) {sym_name = "a", address = 0 : i32, mem_bank = 0 : ui32} : memref<1024xi32, 1 : i32>
3030
return
3131
}
3232

compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/AMDAIECreateAIEWorkgroup.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,26 @@ LogicalResult WorkgroupBuilder::build(Operation *op, Block *target,
363363
return workgroupOp.emitOpError()
364364
<< "not supported in `amdaie.workgroup` creation";
365365
})
366+
.Case<AMDAIE::LogicalObjectFifoFromMemrefOp>([&](auto lofOp) {
367+
// Try to clone in workgroup.
368+
if (llvm::all_of(lofOp->getOperands(), [&](Value operand) {
369+
return rewriter.contains(operand);
370+
})) {
371+
Operation *oldLofOp = lofOp.getOperation();
372+
Operation *newLofOp = rewriter.cloneAndMap(*oldLofOp);
373+
controlCodeRewriter.map(lofOp->getResult(0), newLofOp->getResult(0));
374+
return success();
375+
}
376+
// Try to clone in controlcode.
377+
if (llvm::all_of(op->getOperands(), [&](Value operand) {
378+
return controlCodeRewriter.contains(operand);
379+
})) {
380+
controlCodeRewriter.setInsertionPoint(controlCode, controlCodeEnd);
381+
controlCodeRewriter.cloneAndMap(*op);
382+
return success();
383+
}
384+
return failure();
385+
})
366386
.Default([&](Operation *) {
367387
// All other operations are cloned.
368388
// Case 1: Try to clone in workgroup.

compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/test/assign_bd_ids.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ module attributes {hal.executable.target = #executable_target_amdaie_xclbin_fb}
3131
%c2 = arith.constant 2 : index
3232
%c1 = arith.constant 1 : index
3333
%t01 = amdaie.tile(%c2, %c1)
34-
%buf01_0 = amdaie.buffer(%t01) { address = 8192 : ui32, sym_name = "in" } : memref<16xi32>
34+
%buf01_0 = amdaie.buffer(%t01) { address = 8192 : i32, sym_name = "in" } : memref<16xi32>
3535
%l01_0 = amdaie.lock(%t01(1), 0)
3636
%l01_1 = amdaie.lock(%t01(0), 1)
3737
%dstDma = amdaie.dma_start(%t01, MM2S, 0) {

compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/test/assign_buffer_address.mlir

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
// CHECK-LABEL: @mix_prealloc
55
// CHECK: amdaie.workgroup {
66
// CHECK: %[[TILE:.*]] = amdaie.tile
7-
// CHECK: amdaie.buffer(%[[TILE]]) {address = 327680 : ui32, mem_bank = 5 : ui32, sym_name = "_anonymous0"} : memref<200xi32>
8-
// CHECK: amdaie.buffer(%[[TILE]]) {address = 393216 : ui32, mem_bank = 6 : ui32, sym_name = "_anonymous1"} : memref<100xi32>
9-
// CHECK: amdaie.buffer(%[[TILE]]) {address = 0 : ui32, mem_bank = 0 : ui32, sym_name = "a"} : memref<1024xi32>
7+
// CHECK: amdaie.buffer(%[[TILE]]) {address = 327680 : i32, mem_bank = 5 : ui32, sym_name = "_anonymous0"} : memref<200xi32>
8+
// CHECK: amdaie.buffer(%[[TILE]]) {address = 393216 : i32, mem_bank = 6 : ui32, sym_name = "_anonymous1"} : memref<100xi32>
9+
// CHECK: amdaie.buffer(%[[TILE]]) {address = 0 : i32, mem_bank = 0 : ui32, sym_name = "a"} : memref<1024xi32>
1010
#executable_target_amdaie_xclbin_fb = #hal.executable.target<"amd-aie", "amdaie-xclbin-fb", {target_device = "npu1_4col", ukernels = "none"}>
1111
module @mix_prealloc attributes {hal.executable.target = #executable_target_amdaie_xclbin_fb} {
1212
amdaie.workgroup {

compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/test/create_aie_workgroup.mlir

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)