Back to PBT run
input.mlir
dataflow.graph private @nest_0(%start: none, %lb: i64, %ub: i64, %step: i64, %value: i32,
%a: memref<256xi32>) -> ()
attributes {input_segments = array<i32: 4, 0, 1>,
result_segments = array<i32: 0, 0, 0>} {
scf.for %outer = %lb to %ub step %step : i64 {
scf.for %i = %lb to %outer step %step : i64 {
%inner_idx = arith.index_cast %i : i64 to index
%nloaded = memref.load %a[%inner_idx] : memref<256xi32>
%nnext = arith.addi %nloaded, %value : i32
memref.store %nnext, %a[%inner_idx] : memref<256xi32>
}
}
dataflow.graph.return %start : none
}
dataflow.graph private @acc_1(%start: none, %lb: i64, %ub: i64, %step: i64, %init: i32,
%a: memref<?xi32>) -> (i32)
attributes {input_segments = array<i32: 4, 0, 1>,
result_segments = array<i32: 1, 0, 0>} {
%total = scf.for %i = %lb to %ub step %step
iter_args(%state = %init) -> (i32) : i64 {
%idx = arith.index_cast %i : i64 to index
%aloaded = memref.load %a[%idx] : memref<?xi32>
%asum = arith.addi %state, %aloaded : i32
memref.store %asum, %a[%idx] : memref<?xi32>
scf.yield %asum : i32
}
dataflow.graph.return %start, %total : none, i32
}
dataflow.graph private @nest_2(%start: none, %lb: i64, %ub: i64, %step: i64, %value: i32,
%a: memref<256xi32>) -> ()
attributes {input_segments = array<i32: 4, 0, 1>,
result_segments = array<i32: 0, 0, 0>} {
scf.for %outer = %lb to %ub step %step : i64 {
scf.for %i = %lb to %outer step %step : i64 {
%inner_idx = arith.index_cast %i : i64 to index
%nloaded = memref.load %a[%inner_idx] : memref<256xi32>
%nnext = arith.addi %nloaded, %value : i32
memref.store %nnext, %a[%inner_idx] : memref<256xi32>
}
}
dataflow.graph.return %start : none
}