← passage and results

case.mlir

evidence/breadth-12/pbt/cases/s084_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<8xi8>
      attributes {input_segments = array<i32: 0, 0, 1>,
                  result_segments = array<i32: 1, 0, 0>} {
    %addresses = arith.constant dense<[1, 1, 894, 1990, 3472, 2408, 7, 6]> : vector<8xindex>
    %mask = arith.constant dense<[true, false, false, false, false, false, true, true]> : vector<8xi1>
    %data, %done = dataflow.load %mem[%addresses] %start mask %mask
        : memref<?xi8>, vector<8xindex>, vector<8xi8>
    dataflow.graph.return %done, %data : none, vector<8xi8>
  }

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