Back to PBT run

input.mlir

module {
  dataflow.graph private @view_export_0(
      %start: none, %lb: i64, %ub: i64, %step: i64, %i: index, %c: i1, %v: i32,
      %m: memref<4xi32>) -> (memref<?xi32>)
      attributes {input_segments = array<i32: 6, 0, 1>,
                  result_segments = array<i32: 0, 0, 1>} {
    %view = memref.cast %m : memref<4xi32> to memref<?xi32>
    scf.if %c {
      memref.store %v, %view[%i] : memref<?xi32>
    }
    %loaded = memref.load %view[%i] : memref<?xi32>
    dataflow.graph.return values() streams()
        memories(%view : memref<?xi32>) complete(%start : none)
  }
  dataflow.graph private @imported_export_1(
      %start: none, %lb: i64, %ub: i64, %step: i64, %i: index, %c: i1, %v: i32,
      %m: memref<?xi32>) -> (memref<?xi32>)
      attributes {input_segments = array<i32: 6, 0, 1>,
                  result_segments = array<i32: 0, 0, 1>} {
    scf.if %c {
      memref.store %v, %m[%i] : memref<?xi32>
    }
    %loaded = memref.load %m[%i] : memref<?xi32>
    dataflow.graph.return values() streams()
        memories(%m : memref<?xi32>) complete(%start : none)
  }
  dataflow.graph private @fresh_export_2(
      %start: none, %lb: i64, %ub: i64, %step: i64, %i: index, %c: i1, %v: i32)
      -> (memref<4xi32>)
      attributes {input_segments = array<i32: 6, 0, 0>,
                  result_segments = array<i32: 0, 0, 1>} {
    %slot = memref.alloc() : memref<4xi32>
    scf.for %iv = %lb to %ub step %step : i64 {
      %idx = arith.index_cast %iv : i64 to index
      memref.store %v, %slot[%idx] : memref<4xi32>
    }
    %loaded = memref.load %slot[%i] : memref<4xi32>
    dataflow.graph.return values() streams()
        memories(%slot : memref<4xi32>) complete(%start : none)
  }
}