fn w64 $increment(w64 %0) {
  @entry0
    jmp @arm1;
  @arm1
    jmp @case2;
  @case2
    add w64 %1 %0 4;
    load w32 %2 %1 0;
    add w32 %3 %2 1;
    store w32 %3 %1 0;
    jmp @merge4;
  @merge4
    ret;
}

fn w32 $consume(w64 %0) {
  @entry0
    reserve %1 8 4;
    blit %1 %0 8;
    jmp @arm1;
  @arm1
    jmp @case2;
  @case2
    load w32 %2 %1 4;
    ret %2;
}

fn w32 $main() {
  @entry0
    reserve %0 4 4;
    store w32 40 %0 0;
    reserve %1 8 4;
    store w8 0 %1 0;
    add w64 %2 %1 4;
    blit %2 %0 4;
    call w64 $increment(%1);
    call w64 $increment(%1);
    call w32 %3 $consume(%1);
    ret %3;
}
