← passage and results

case.mlir

evidence/breadth-12/pbt/cases/s066_normal/case.mlir

Download original file

module attributes {
  dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<index, 32>>
} {
  dataflow.graph private @masked_gather(
      %start: none, %mem: memref<?xi8>) -> vector<2xi8>
      attributes {input_segments = array<i32: 0, 0, 1>,
                  result_segments = array<i32: 1, 0, 0>} {
    %addresses = arith.constant dense<[2, 1054]> : vector<2xindex>
    %mask = arith.constant dense<[true, false]> : vector<2xi1>
    %data, %done = dataflow.load %mem[%addresses] %start mask %mask
        : memref<?xi8>, vector<2xindex>, vector<2xi8>
    dataflow.graph.return %done, %data : none, vector<2xi8>
  }

  dataflow.graph private @masked_scatter(
      %start: none, %packed: i16, %mem: memref<?xi8>)
      attributes {input_segments = array<i32: 1, 0, 1>,
                  result_segments = array<i32: 0, 0, 0>} {
    %addresses = arith.constant dense<[2, 1054]> : vector<2xindex>
    %mask = arith.constant dense<[true, false]> : vector<2xi1>
    %data = dataflow.unpack %packed : i16 -> vector<2xi8>
    %done = dataflow.store %mem[%addresses] %data %start mask %mask
        : memref<?xi8>, vector<2xindex>, vector<2xi8>
    dataflow.graph.return %done : none
  }
}