Back to PBT run

output.generic.mlir

"builtin.module"() ({
  "dataflow.thread"() <{domain = #dataflow.thread_domain<dense>, function_type = (index, memref<?xindex>) -> (), sym_name = "thread_0", sym_visibility = "private"}> ({
  ^bb0(%arg9: index, %arg10: memref<?xindex>, %arg11: none):
    %233 = "dataflow.graph.launch"(%arg11, %arg9, %arg10) <{callee = @g_thread_0, operandSegmentSizes = array<i32: 1, 1, 0, 1, 0>, resultSegmentSizes = array<i32: 0, 0, 1>, source_maps = []}> : (none, index, memref<?xindex>) -> none
    "dataflow.thread.yield"(%233) : (none) -> ()
  }) : () -> ()
  "dataflow.thread"() <{domain = #dataflow.thread_domain<dense>, function_type = (index, memref<?xindex>) -> (), sym_name = "thread_1", sym_visibility = "private"}> ({
  ^bb0(%arg6: index, %arg7: memref<?xindex>, %arg8: none):
    %232 = "dataflow.graph.launch"(%arg8, %arg6, %arg7) <{callee = @g_thread_1, operandSegmentSizes = array<i32: 1, 1, 0, 1, 0>, resultSegmentSizes = array<i32: 0, 0, 1>, source_maps = []}> : (none, index, memref<?xindex>) -> none
    "dataflow.thread.yield"(%232) : (none) -> ()
  }) : () -> ()
  "dataflow.graph"() <{arg_attrs = [{}, {llvm.noalias}], function_type = (index, memref<?xindex>) -> (), input_segments = array<i32: 1, 0, 1>, result_segments = array<i32: 0, 0, 0>, sym_name = "g_thread_0", sym_visibility = "private"}> ({
  ^bb0(%arg3: none, %arg4: index, %arg5: memref<?xindex>):
    %114 = "dataflow.constant"(%arg3) <{const_value = 0 : index}> : (none) -> index
    %115 = "dataflow.constant"(%arg3) <{const_value = 1 : index}> : (none) -> index
    %116 = "dataflow.constant"(%arg3) <{const_value = 2 : index}> : (none) -> index
    %117 = "arith.index_cast"(%114) : (index) -> i32
    %118 = "arith.index_cast"(%116) : (index) -> i32
    %119 = "arith.index_cast"(%115) : (index) -> i32
    %120:2 = "dataflow.stream"(%117, %118, %119) <{predicate = 2 : i64, step_kind = 0 : i32}> : (i32, i32, i32) -> (i32, i1)
    %121 = "dataflow.carry"(%120#1, %arg3, %170#0) : (i1, none, none) -> none
    %122:2 = "dataflow.demux"(%120#1, %121) : (i1, none) -> (none, none)
    %123 = "dataflow.invariant"(%120#1, %114) : (i1, index) -> index
    %124:2 = "dataflow.gate"(%120#1, %123) : (i1, index) -> (i1, index)
    %125:2 = "dataflow.demux"(%124#0, %124#1) : (i1, index) -> (index, index)
    %126 = "dataflow.invariant"(%120#1, %115) : (i1, index) -> index
    %127:2 = "dataflow.gate"(%120#1, %126) : (i1, index) -> (i1, index)
    %128:2 = "dataflow.demux"(%127#0, %127#1) : (i1, index) -> (index, index)
    %129 = "dataflow.invariant"(%120#1, %116) : (i1, index) -> index
    %130:2 = "dataflow.gate"(%120#1, %129) : (i1, index) -> (i1, index)
    %131:2 = "dataflow.demux"(%130#0, %130#1) : (i1, index) -> (index, index)
    %132 = "dataflow.carry"(%120#1, %arg3, %150#0) : (i1, none, none) -> none
    %133 = "dataflow.carry"(%120#1, %arg3, %151#0) : (i1, none, none) -> none
    %134:2 = "dataflow.demux"(%120#1, %132) : (i1, none) -> (none, none)
    %135:2 = "dataflow.demux"(%120#1, %133) : (i1, none) -> (none, none)
    %136:2 = "dataflow.sync"(%122#1, %134#1) : (none, none) -> (none, none)
    %137:2 = "dataflow.load"(%arg5, %124#1, %136#0) : (memref<?xindex>, index, none) -> (index, none)
    %138:2 = "dataflow.sync"(%135#1, %137#1) : (none, none) -> (none, none)
    %139 = "arith.addi"(%137#0, %127#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %140 = "dataflow.store"(%arg5, %124#1, %139, %138#0) : (memref<?xindex>, index, index, none) -> none
    %141 = "dataflow.carry"(%146, %122#1, %148#1) : (i1, none, none) -> none
    %142 = "dataflow.carry"(%146, %124#1, %164) : (i1, index, index) -> index
    %143 = "dataflow.invariant"(%146, %130#1) : (i1, index) -> index
    %144 = "dataflow.carry"(%146, %140, %163) : (i1, none, none) -> none
    %145 = "dataflow.carry"(%146, %140, %163) : (i1, none, none) -> none
    %146 = "arith.cmpi"(%142, %143) <{predicate = 6 : i64}> : (index, index) -> i1
    %147:2 = "dataflow.demux"(%146, %141) : (i1, none) -> (none, none)
    %148:2 = "dataflow.gate"(%146, %141) : (i1, none) -> (i1, none)
    %149:2 = "dataflow.demux"(%148#0, %148#1) : (i1, none) -> (none, none)
    %150:2 = "dataflow.demux"(%146, %144) : (i1, none) -> (none, none)
    %151:2 = "dataflow.demux"(%146, %145) : (i1, none) -> (none, none)
    %152:2 = "dataflow.demux"(%146, %142) : (i1, index) -> (index, index)
    %153 = "dataflow.invariant"(%146, %127#1) : (i1, index) -> index
    %154:2 = "dataflow.gate"(%146, %153) : (i1, index) -> (i1, index)
    %155:2 = "dataflow.demux"(%154#0, %154#1) : (i1, index) -> (index, index)
    %156 = "dataflow.invariant"(%146, %124#1) : (i1, index) -> index
    %157:2 = "dataflow.gate"(%146, %156) : (i1, index) -> (i1, index)
    %158:2 = "dataflow.demux"(%157#0, %157#1) : (i1, index) -> (index, index)
    %159:2 = "dataflow.sync"(%148#1, %151#1) : (none, none) -> (none, none)
    %160 = "dataflow.store"(%arg5, %157#1, %154#1, %159#0) : (memref<?xindex>, index, index, none) -> none
    %161:2 = "dataflow.load"(%arg5, %157#1, %160) : (memref<?xindex>, index, none) -> (index, none)
    %162 = "arith.addi"(%161#0, %154#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %163 = "dataflow.store"(%arg5, %157#1, %162, %161#1) : (memref<?xindex>, index, index, none) -> none
    %164 = "arith.addi"(%152#1, %154#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %165:2 = "dataflow.demux"(%148#0, %148#1) : (i1, none) -> (none, none)
    %166:4 = "dataflow.sync"(%165#0, %149#0, %155#0, %158#0) : (none, none, index, index) -> (none, none, index, index)
    %167 = "dataflow.mux"(%148#0, %166#0, %165#1) : (i1, none, none) -> none
    %168 = "dataflow.carry"(%146, %122#1, %167) : (i1, none, none) -> none
    %169:2 = "dataflow.demux"(%146, %168) : (i1, none) -> (none, none)
    %170:2 = "dataflow.sync"(%147#0, %169#0) : (none, none) -> (none, none)
    %171 = "arith.cmpi"(%117, %118) <{predicate = 2 : i64}> : (i32, i32) -> i1
    %172:2 = "dataflow.demux"(%171, %122#0) : (i1, none) -> (none, none)
    %173:4 = "dataflow.sync"(%172#1, %125#0, %128#0, %131#0) : (none, index, index, index) -> (none, index, index, index)
    %174 = "dataflow.mux"(%171, %172#0, %173#0) : (i1, none, none) -> none
    %175 = "dataflow.carry"(%179, %174, %221#0) : (i1, none, none) -> none
    %176 = "dataflow.carry"(%179, %114, %222) : (i1, index, index) -> index
    %177 = "dataflow.invariant"(%179, %116) : (i1, index) -> index
    %178 = "dataflow.carry"(%179, %135#0, %202#0) : (i1, none, none) -> none
    %179 = "arith.cmpi"(%176, %177) <{predicate = 6 : i64}> : (index, index) -> i1
    %180:2 = "dataflow.demux"(%179, %175) : (i1, none) -> (none, none)
    %181:2 = "dataflow.gate"(%179, %175) : (i1, none) -> (i1, none)
    %182:2 = "dataflow.demux"(%181#0, %181#1) : (i1, none) -> (none, none)
    %183:2 = "dataflow.demux"(%179, %178) : (i1, none) -> (none, none)
    %184:2 = "dataflow.demux"(%179, %176) : (i1, index) -> (index, index)
    %185 = "dataflow.invariant"(%179, %116) : (i1, index) -> index
    %186:2 = "dataflow.gate"(%179, %185) : (i1, index) -> (i1, index)
    %187:2 = "dataflow.demux"(%186#0, %186#1) : (i1, index) -> (index, index)
    %188 = "dataflow.invariant"(%179, %115) : (i1, index) -> index
    %189:2 = "dataflow.gate"(%179, %188) : (i1, index) -> (i1, index)
    %190:2 = "dataflow.demux"(%189#0, %189#1) : (i1, index) -> (index, index)
    %191 = "dataflow.invariant"(%179, %114) : (i1, index) -> index
    %192:2 = "dataflow.gate"(%179, %191) : (i1, index) -> (i1, index)
    %193:2 = "dataflow.demux"(%192#0, %192#1) : (i1, index) -> (index, index)
    %194 = "dataflow.carry"(%198, %181#1, %200#1) : (i1, none, none) -> none
    %195 = "dataflow.carry"(%198, %192#1, %215) : (i1, index, index) -> index
    %196 = "dataflow.invariant"(%198, %186#1) : (i1, index) -> index
    %197 = "dataflow.carry"(%198, %183#1, %214) : (i1, none, none) -> none
    %198 = "arith.cmpi"(%195, %196) <{predicate = 6 : i64}> : (index, index) -> i1
    %199:2 = "dataflow.demux"(%198, %194) : (i1, none) -> (none, none)
    %200:2 = "dataflow.gate"(%198, %194) : (i1, none) -> (i1, none)
    %201:2 = "dataflow.demux"(%200#0, %200#1) : (i1, none) -> (none, none)
    %202:2 = "dataflow.demux"(%198, %197) : (i1, none) -> (none, none)
    %203:2 = "dataflow.demux"(%198, %195) : (i1, index) -> (index, index)
    %204 = "dataflow.invariant"(%198, %189#1) : (i1, index) -> index
    %205:2 = "dataflow.gate"(%198, %204) : (i1, index) -> (i1, index)
    %206:2 = "dataflow.demux"(%205#0, %205#1) : (i1, index) -> (index, index)
    %207 = "dataflow.invariant"(%198, %192#1) : (i1, index) -> index
    %208:2 = "dataflow.gate"(%198, %207) : (i1, index) -> (i1, index)
    %209:2 = "dataflow.demux"(%208#0, %208#1) : (i1, index) -> (index, index)
    %210:2 = "dataflow.sync"(%200#1, %202#1) : (none, none) -> (none, none)
    %211 = "dataflow.store"(%arg5, %208#1, %205#1, %210#0) : (memref<?xindex>, index, index, none) -> none
    %212:2 = "dataflow.load"(%arg5, %208#1, %211) : (memref<?xindex>, index, none) -> (index, none)
    %213 = "arith.addi"(%212#0, %205#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %214 = "dataflow.store"(%arg5, %208#1, %213, %212#1) : (memref<?xindex>, index, index, none) -> none
    %215 = "arith.addi"(%203#1, %205#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %216:2 = "dataflow.demux"(%200#0, %200#1) : (i1, none) -> (none, none)
    %217:4 = "dataflow.sync"(%216#0, %201#0, %206#0, %209#0) : (none, none, index, index) -> (none, none, index, index)
    %218 = "dataflow.mux"(%200#0, %217#0, %216#1) : (i1, none, none) -> none
    %219 = "dataflow.carry"(%198, %181#1, %218) : (i1, none, none) -> none
    %220:2 = "dataflow.demux"(%198, %219) : (i1, none) -> (none, none)
    %221:2 = "dataflow.sync"(%199#0, %220#0) : (none, none) -> (none, none)
    %222 = "arith.addi"(%184#1, %189#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %223:2 = "dataflow.demux"(%181#0, %221#0) : (i1, none) -> (none, none)
    %224:2 = "dataflow.sync"(%223#0, %182#0) : (none, none) -> (none, none)
    %225:2 = "dataflow.sync"(%224#0, %187#0) : (none, index) -> (none, index)
    %226:2 = "dataflow.sync"(%190#0, %193#0) : (index, index) -> (index, index)
    %227:2 = "dataflow.sync"(%225#0, %226#0) : (none, index) -> (none, index)
    %228 = "dataflow.mux"(%181#0, %227#0, %223#1) : (i1, none, none) -> none
    %229 = "dataflow.carry"(%179, %174, %228) : (i1, none, none) -> none
    %230:2 = "dataflow.demux"(%179, %229) : (i1, none) -> (none, none)
    %231:2 = "dataflow.sync"(%180#0, %230#0) : (none, none) -> (none, none)
    "dataflow.graph.return"(%231#0, %183#0) <{operandSegmentSizes = array<i32: 0, 0, 0, 2>}> : (none, none) -> ()
  }) : () -> ()
  "dataflow.graph"() <{arg_attrs = [{}, {llvm.noalias}], function_type = (index, memref<?xindex>) -> (), input_segments = array<i32: 1, 0, 1>, result_segments = array<i32: 0, 0, 0>, sym_name = "g_thread_1", sym_visibility = "private"}> ({
  ^bb0(%arg0: none, %arg1: index, %arg2: memref<?xindex>):
    %0 = "dataflow.constant"(%arg0) <{const_value = 0 : index}> : (none) -> index
    %1 = "dataflow.constant"(%arg0) <{const_value = 1 : index}> : (none) -> index
    %2 = "dataflow.constant"(%arg0) <{const_value = 2 : index}> : (none) -> index
    %3 = "dataflow.carry"(%8, %arg0, %45) : (i1, none, none) -> none
    %4 = "dataflow.carry"(%8, %0, %46) : (i1, index, index) -> index
    %5 = "dataflow.invariant"(%8, %2) : (i1, index) -> index
    %6 = "dataflow.carry"(%8, %arg0, %38#0) : (i1, none, none) -> none
    %7 = "dataflow.carry"(%8, %arg0, %39#0) : (i1, none, none) -> none
    %8 = "arith.cmpi"(%4, %5) <{predicate = 6 : i64}> : (index, index) -> i1
    %9:2 = "dataflow.demux"(%8, %3) : (i1, none) -> (none, none)
    %10:2 = "dataflow.gate"(%8, %3) : (i1, none) -> (i1, none)
    %11:2 = "dataflow.demux"(%10#0, %10#1) : (i1, none) -> (none, none)
    %12:2 = "dataflow.demux"(%8, %6) : (i1, none) -> (none, none)
    %13:2 = "dataflow.demux"(%8, %7) : (i1, none) -> (none, none)
    %14:2 = "dataflow.demux"(%8, %4) : (i1, index) -> (index, index)
    %15 = "dataflow.invariant"(%8, %1) : (i1, index) -> index
    %16:2 = "dataflow.gate"(%8, %15) : (i1, index) -> (i1, index)
    %17:2 = "dataflow.demux"(%16#0, %16#1) : (i1, index) -> (index, index)
    %18 = "dataflow.invariant"(%8, %0) : (i1, index) -> index
    %19:2 = "dataflow.gate"(%8, %18) : (i1, index) -> (i1, index)
    %20:2 = "dataflow.demux"(%19#0, %19#1) : (i1, index) -> (index, index)
    %21 = "dataflow.invariant"(%8, %2) : (i1, index) -> index
    %22:2 = "dataflow.gate"(%8, %21) : (i1, index) -> (i1, index)
    %23:2 = "dataflow.demux"(%22#0, %22#1) : (i1, index) -> (index, index)
    %24 = "arith.index_cast"(%19#1) : (index) -> i32
    %25 = "arith.index_cast"(%22#1) : (index) -> i32
    %26 = "arith.index_cast"(%16#1) : (index) -> i32
    %27:2 = "dataflow.stream"(%24, %25, %26) <{predicate = 2 : i64, step_kind = 0 : i32}> : (i32, i32, i32) -> (i32, i1)
    %28 = "dataflow.carry"(%27#1, %10#1, %29#1) : (i1, none, none) -> none
    %29:2 = "dataflow.demux"(%27#1, %28) : (i1, none) -> (none, none)
    %30 = "dataflow.invariant"(%27#1, %16#1) : (i1, index) -> index
    %31:2 = "dataflow.gate"(%27#1, %30) : (i1, index) -> (i1, index)
    %32:2 = "dataflow.demux"(%31#0, %31#1) : (i1, index) -> (index, index)
    %33 = "dataflow.invariant"(%27#1, %19#1) : (i1, index) -> index
    %34:2 = "dataflow.gate"(%27#1, %33) : (i1, index) -> (i1, index)
    %35:2 = "dataflow.demux"(%34#0, %34#1) : (i1, index) -> (index, index)
    %36 = "dataflow.carry"(%27#1, %12#1, %41) : (i1, none, none) -> none
    %37 = "dataflow.carry"(%27#1, %13#1, %41) : (i1, none, none) -> none
    %38:2 = "dataflow.demux"(%27#1, %36) : (i1, none) -> (none, none)
    %39:2 = "dataflow.demux"(%27#1, %37) : (i1, none) -> (none, none)
    %40:2 = "dataflow.sync"(%29#1, %39#1) : (none, none) -> (none, none)
    %41 = "dataflow.store"(%arg2, %34#1, %31#1, %40#0) : (memref<?xindex>, index, index, none) -> none
    %42 = "arith.cmpi"(%24, %25) <{predicate = 2 : i64}> : (i32, i32) -> i1
    %43:2 = "dataflow.demux"(%42, %29#0) : (i1, none) -> (none, none)
    %44:3 = "dataflow.sync"(%43#1, %32#0, %35#0) : (none, index, index) -> (none, index, index)
    %45 = "dataflow.mux"(%42, %43#0, %44#0) : (i1, none, none) -> none
    %46 = "arith.addi"(%14#1, %16#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %47:2 = "dataflow.demux"(%10#0, %45) : (i1, none) -> (none, none)
    %48:2 = "dataflow.sync"(%47#0, %11#0) : (none, none) -> (none, none)
    %49:2 = "dataflow.sync"(%48#0, %17#0) : (none, index) -> (none, index)
    %50:2 = "dataflow.sync"(%20#0, %23#0) : (index, index) -> (index, index)
    %51:2 = "dataflow.sync"(%49#0, %50#0) : (none, index) -> (none, index)
    %52 = "dataflow.mux"(%10#0, %51#0, %47#1) : (i1, none, none) -> none
    %53 = "dataflow.carry"(%8, %arg0, %52) : (i1, none, none) -> none
    %54:2 = "dataflow.demux"(%8, %53) : (i1, none) -> (none, none)
    %55:2 = "dataflow.sync"(%9#0, %54#0) : (none, none) -> (none, none)
    %56 = "dataflow.carry"(%61, %55#0, %98) : (i1, none, none) -> none
    %57 = "dataflow.carry"(%61, %0, %104) : (i1, index, index) -> index
    %58 = "dataflow.invariant"(%61, %2) : (i1, index) -> index
    %59 = "dataflow.carry"(%61, %12#0, %103) : (i1, none, none) -> none
    %60 = "dataflow.carry"(%61, %13#0, %103) : (i1, none, none) -> none
    %61 = "arith.cmpi"(%57, %58) <{predicate = 6 : i64}> : (index, index) -> i1
    %62:2 = "dataflow.demux"(%61, %56) : (i1, none) -> (none, none)
    %63:2 = "dataflow.gate"(%61, %56) : (i1, none) -> (i1, none)
    %64:2 = "dataflow.demux"(%63#0, %63#1) : (i1, none) -> (none, none)
    %65:2 = "dataflow.demux"(%61, %59) : (i1, none) -> (none, none)
    %66:2 = "dataflow.demux"(%61, %60) : (i1, none) -> (none, none)
    %67:2 = "dataflow.demux"(%61, %57) : (i1, index) -> (index, index)
    %68 = "dataflow.invariant"(%61, %1) : (i1, index) -> index
    %69:2 = "dataflow.gate"(%61, %68) : (i1, index) -> (i1, index)
    %70:2 = "dataflow.demux"(%69#0, %69#1) : (i1, index) -> (index, index)
    %71 = "dataflow.invariant"(%61, %0) : (i1, index) -> index
    %72:2 = "dataflow.gate"(%61, %71) : (i1, index) -> (i1, index)
    %73:2 = "dataflow.demux"(%72#0, %72#1) : (i1, index) -> (index, index)
    %74 = "dataflow.invariant"(%61, %2) : (i1, index) -> index
    %75:2 = "dataflow.gate"(%61, %74) : (i1, index) -> (i1, index)
    %76:2 = "dataflow.demux"(%75#0, %75#1) : (i1, index) -> (index, index)
    %77 = "arith.index_cast"(%72#1) : (index) -> i32
    %78 = "arith.index_cast"(%75#1) : (index) -> i32
    %79 = "arith.index_cast"(%69#1) : (index) -> i32
    %80:2 = "dataflow.stream"(%77, %78, %79) <{predicate = 2 : i64, step_kind = 0 : i32}> : (i32, i32, i32) -> (i32, i1)
    %81 = "dataflow.carry"(%80#1, %63#1, %82#1) : (i1, none, none) -> none
    %82:2 = "dataflow.demux"(%80#1, %81) : (i1, none) -> (none, none)
    %83 = "dataflow.invariant"(%80#1, %69#1) : (i1, index) -> index
    %84:2 = "dataflow.gate"(%80#1, %83) : (i1, index) -> (i1, index)
    %85:2 = "dataflow.demux"(%84#0, %84#1) : (i1, index) -> (index, index)
    %86 = "dataflow.invariant"(%80#1, %72#1) : (i1, index) -> index
    %87:2 = "dataflow.gate"(%80#1, %86) : (i1, index) -> (i1, index)
    %88:2 = "dataflow.demux"(%87#0, %87#1) : (i1, index) -> (index, index)
    %89 = "dataflow.carry"(%80#1, %65#1, %94) : (i1, none, none) -> none
    %90 = "dataflow.carry"(%80#1, %66#1, %94) : (i1, none, none) -> none
    %91:2 = "dataflow.demux"(%80#1, %89) : (i1, none) -> (none, none)
    %92:2 = "dataflow.demux"(%80#1, %90) : (i1, none) -> (none, none)
    %93:2 = "dataflow.sync"(%82#1, %92#1) : (none, none) -> (none, none)
    %94 = "dataflow.store"(%arg2, %87#1, %84#1, %93#0) : (memref<?xindex>, index, index, none) -> none
    %95 = "arith.cmpi"(%77, %78) <{predicate = 2 : i64}> : (i32, i32) -> i1
    %96:2 = "dataflow.demux"(%95, %82#0) : (i1, none) -> (none, none)
    %97:3 = "dataflow.sync"(%96#1, %85#0, %88#0) : (none, index, index) -> (none, index, index)
    %98 = "dataflow.mux"(%95, %96#0, %97#0) : (i1, none, none) -> none
    %99:2 = "dataflow.sync"(%98, %91#0) : (none, none) -> (none, none)
    %100:2 = "dataflow.load"(%arg2, %72#1, %99#0) : (memref<?xindex>, index, none) -> (index, none)
    %101:2 = "dataflow.sync"(%92#0, %100#1) : (none, none) -> (none, none)
    %102 = "arith.addi"(%100#0, %69#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %103 = "dataflow.store"(%arg2, %72#1, %102, %101#0) : (memref<?xindex>, index, index, none) -> none
    %104 = "arith.addi"(%67#1, %69#1) <{overflowFlags = #arith.overflow<none>}> : (index, index) -> index
    %105:2 = "dataflow.demux"(%63#0, %98) : (i1, none) -> (none, none)
    %106:2 = "dataflow.sync"(%105#0, %64#0) : (none, none) -> (none, none)
    %107:2 = "dataflow.sync"(%106#0, %70#0) : (none, index) -> (none, index)
    %108:2 = "dataflow.sync"(%73#0, %76#0) : (index, index) -> (index, index)
    %109:2 = "dataflow.sync"(%107#0, %108#0) : (none, index) -> (none, index)
    %110 = "dataflow.mux"(%63#0, %109#0, %105#1) : (i1, none, none) -> none
    %111 = "dataflow.carry"(%61, %55#0, %110) : (i1, none, none) -> none
    %112:2 = "dataflow.demux"(%61, %111) : (i1, none) -> (none, none)
    %113:2 = "dataflow.sync"(%62#0, %112#0) : (none, none) -> (none, none)
    "dataflow.graph.return"(%113#0, %66#0) <{operandSegmentSizes = array<i32: 0, 0, 0, 2>}> : (none, none) -> ()
  }) : () -> ()
}) : () -> ()