{
  "endianness": "little",
  "entry": "freeze_memory_recursive_conditional_cyclic_byte_lane_carry",
  "functions": {
    "freeze_memory_recursive_conditional_cyclic_byte_lane_carry": {
      "blocks": {
        "bb0": [
          {
            "dst": "input_raw_7",
            "offset": 0,
            "op": "input"
          },
          {
            "bits": 1,
            "dst": "input_ext_8",
            "op": "unary",
            "operator": "zext",
            "value": {
              "var": "input_raw_7"
            }
          },
          {
            "bits": 1,
            "dst": "arg0",
            "op": "unary",
            "operator": "trunc",
            "value": {
              "var": "input_ext_8"
            }
          },
          {
            "dst": "input_raw_9",
            "offset": 1,
            "op": "input"
          },
          {
            "bits": 1,
            "dst": "input_ext_10",
            "op": "unary",
            "operator": "zext",
            "value": {
              "var": "input_raw_9"
            }
          },
          {
            "bits": 1,
            "dst": "arg1",
            "op": "unary",
            "operator": "trunc",
            "value": {
              "var": "input_ext_10"
            }
          },
          {
            "dst": "input_raw_11",
            "offset": 2,
            "op": "input"
          },
          {
            "bits": 1,
            "dst": "input_ext_12",
            "op": "unary",
            "operator": "zext",
            "value": {
              "var": "input_raw_11"
            }
          },
          {
            "bits": 1,
            "dst": "arg2",
            "op": "unary",
            "operator": "trunc",
            "value": {
              "var": "input_ext_12"
            }
          },
          {
            "bits": 64,
            "dst": "v0",
            "op": "unary",
            "operator": "identity",
            "value": {
              "bits": 64,
              "const": 64
            }
          },
          {
            "bits": 64,
            "dst": "v1",
            "left": {
              "var": "v0"
            },
            "op": "binary",
            "operator": "add",
            "right": {
              "bits": 64,
              "const": 1
            }
          },
          {
            "address": {
              "bits": 64,
              "const": 64
            },
            "bits": 16,
            "byte_lane_store": "byte_lane_store_0",
            "bytes": 2,
            "op": "store",
            "value": {
              "bits": 16,
              "const": 42
            }
          },
          {
            "op": "jump",
            "target": "edge_bb0_bb1"
          }
        ],
        "bb1": [
          {
            "address": {
              "bits": 64,
              "const": 64
            },
            "bits": 16,
            "bytes": 2,
            "dst": "v3",
            "op": "load"
          },
          {
            "bits": 1,
            "dst": "v3__cyclic_byte_defined",
            "left": {
              "var": "v3__lane_0_defined"
            },
            "op": "binary",
            "operator": "and",
            "right": {
              "var": "v3__lane_1_defined"
            }
          },
          {
            "bits": 16,
            "dst": "deferred_poison_choice_13",
            "op": "nondet",
            "site": "11488942555515990277"
          },
          {
            "bits": 16,
            "condition": {
              "var": "v3__cyclic_byte_defined"
            },
            "dst": "v4",
            "false": {
              "var": "deferred_poison_choice_13"
            },
            "op": "select",
            "true": {
              "var": "v3"
            }
          },
          {
            "bits": 1,
            "dst": "v5",
            "left": {
              "var": "v2"
            },
            "op": "binary",
            "operator": "eq",
            "right": {
              "bits": 8,
              "const": 0
            }
          },
          {
            "condition": {
              "var": "v5"
            },
            "false": "bb10",
            "op": "branch",
            "site": "7186333825274934690",
            "true": "bb2"
          }
        ],
        "bb10": [
          {
            "bits": 1,
            "dst": "v9",
            "left": {
              "var": "v4"
            },
            "op": "binary",
            "operator": "eq",
            "right": {
              "bits": 16,
              "const": 42
            }
          },
          {
            "condition": {
              "var": "v9"
            },
            "false": "bb12",
            "op": "branch",
            "site": "9078807488864856076",
            "true": "bb11"
          }
        ],
        "bb11": [
          {
            "op": "return",
            "value": {
              "bits": 8,
              "const": 1
            }
          }
        ],
        "bb12": [
          {
            "op": "return",
            "value": {
              "bits": 8,
              "const": 2
            }
          }
        ],
        "bb2": [
          {
            "condition": {
              "var": "arg0"
            },
            "false": "bb3",
            "op": "branch",
            "site": "10934514741891558725",
            "true": "bb5"
          }
        ],
        "bb3": [
          {
            "condition": {
              "var": "arg1"
            },
            "false": "bb4",
            "op": "branch",
            "site": "8149133773293617892",
            "true": "bb6"
          }
        ],
        "bb4": [
          {
            "condition": {
              "var": "arg2"
            },
            "false": "bb8",
            "op": "branch",
            "site": "3151490558174271363",
            "true": "bb7"
          }
        ],
        "bb5": [
          {
            "bits": 8,
            "dst": "v6",
            "left": {
              "bits": 8,
              "const": 127
            },
            "op": "binary",
            "operator": "add",
            "right": {
              "bits": 8,
              "const": 1
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_left_14",
            "left": {
              "bits": 8,
              "const": 127
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_right_15",
            "left": {
              "bits": 8,
              "const": 1
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_result_16",
            "left": {
              "var": "v6"
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_risky_17",
            "left": {
              "var": "llvm_signed_left_14"
            },
            "op": "binary",
            "operator": "eq",
            "right": {
              "var": "llvm_signed_right_15"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_result_same_18",
            "left": {
              "var": "llvm_signed_result_16"
            },
            "op": "binary",
            "operator": "eq",
            "right": {
              "var": "llvm_signed_left_14"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_not_risky_19",
            "op": "unary",
            "operator": "not",
            "value": {
              "var": "llvm_signed_risky_17"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_defined_20",
            "left": {
              "var": "llvm_signed_not_risky_19"
            },
            "op": "binary",
            "operator": "or",
            "right": {
              "var": "llvm_signed_result_same_18"
            }
          },
          {
            "address": {
              "bits": 64,
              "const": 64
            },
            "bits": 8,
            "byte_lane_defined": "byte_lane_store_defined_2",
            "byte_lane_poison_source": "llvm_signed_defined_20",
            "byte_lane_store": "byte_lane_store_1",
            "bytes": 1,
            "op": "store",
            "value": {
              "var": "v6"
            }
          },
          {
            "bits": 1,
            "dst": "byte_lane_store_defined_2",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "llvm_signed_defined_20"
            }
          },
          {
            "op": "jump",
            "target": "edge_bb5_bb9"
          }
        ],
        "bb6": [
          {
            "bits": 8,
            "dst": "v7",
            "left": {
              "bits": 8,
              "const": 127
            },
            "op": "binary",
            "operator": "add",
            "right": {
              "bits": 8,
              "const": 1
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_left_21",
            "left": {
              "bits": 8,
              "const": 127
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_right_22",
            "left": {
              "bits": 8,
              "const": 1
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_result_23",
            "left": {
              "var": "v7"
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_risky_24",
            "left": {
              "var": "llvm_signed_left_21"
            },
            "op": "binary",
            "operator": "eq",
            "right": {
              "var": "llvm_signed_right_22"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_result_same_25",
            "left": {
              "var": "llvm_signed_result_23"
            },
            "op": "binary",
            "operator": "eq",
            "right": {
              "var": "llvm_signed_left_21"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_not_risky_26",
            "op": "unary",
            "operator": "not",
            "value": {
              "var": "llvm_signed_risky_24"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_defined_27",
            "left": {
              "var": "llvm_signed_not_risky_26"
            },
            "op": "binary",
            "operator": "or",
            "right": {
              "var": "llvm_signed_result_same_25"
            }
          },
          {
            "address": {
              "bits": 64,
              "const": 65
            },
            "bits": 8,
            "byte_lane_defined": "byte_lane_store_defined_4",
            "byte_lane_poison_source": "llvm_signed_defined_27",
            "byte_lane_store": "byte_lane_store_3",
            "bytes": 1,
            "op": "store",
            "value": {
              "var": "v7"
            }
          },
          {
            "bits": 1,
            "dst": "byte_lane_store_defined_4",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "llvm_signed_defined_27"
            }
          },
          {
            "op": "jump",
            "target": "edge_bb6_bb9"
          }
        ],
        "bb7": [
          {
            "bits": 8,
            "dst": "v8",
            "left": {
              "bits": 8,
              "const": -128
            },
            "op": "binary",
            "operator": "sub",
            "right": {
              "bits": 8,
              "const": 1
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_left_28",
            "left": {
              "bits": 8,
              "const": -128
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_right_29",
            "left": {
              "bits": 8,
              "const": 1
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 8,
            "dst": "llvm_signed_result_30",
            "left": {
              "var": "v8"
            },
            "op": "binary",
            "operator": "lshr",
            "right": {
              "bits": 8,
              "const": 7
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_risky_31",
            "left": {
              "var": "llvm_signed_left_28"
            },
            "op": "binary",
            "operator": "ne",
            "right": {
              "var": "llvm_signed_right_29"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_result_same_32",
            "left": {
              "var": "llvm_signed_result_30"
            },
            "op": "binary",
            "operator": "eq",
            "right": {
              "var": "llvm_signed_left_28"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_not_risky_33",
            "op": "unary",
            "operator": "not",
            "value": {
              "var": "llvm_signed_risky_31"
            }
          },
          {
            "bits": 1,
            "dst": "llvm_signed_defined_34",
            "left": {
              "var": "llvm_signed_not_risky_33"
            },
            "op": "binary",
            "operator": "or",
            "right": {
              "var": "llvm_signed_result_same_32"
            }
          },
          {
            "address": {
              "bits": 64,
              "const": 64
            },
            "bits": 8,
            "byte_lane_defined": "byte_lane_store_defined_6",
            "byte_lane_poison_source": "llvm_signed_defined_34",
            "byte_lane_store": "byte_lane_store_5",
            "bytes": 1,
            "op": "store",
            "value": {
              "var": "v8"
            }
          },
          {
            "bits": 1,
            "dst": "byte_lane_store_defined_6",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "llvm_signed_defined_34"
            }
          },
          {
            "op": "jump",
            "target": "edge_bb7_bb9"
          }
        ],
        "bb8": [
          {
            "op": "jump",
            "target": "edge_bb8_bb9"
          }
        ],
        "bb9": [
          {
            "op": "jump",
            "target": "edge_bb9_bb1"
          }
        ],
        "edge_bb0_bb1": [
          {
            "bits": 8,
            "dst": "phi_in_35",
            "op": "unary",
            "operator": "identity",
            "value": {
              "bits": 8,
              "const": 0
            }
          },
          {
            "bits": 8,
            "dst": "v2",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "phi_in_35"
            }
          },
          {
            "bits": 1,
            "dst": "v3__lane_0_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "bits": 1,
              "const": 1
            }
          },
          {
            "bits": 1,
            "dst": "v3__lane_1_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "bits": 1,
              "const": 1
            }
          },
          {
            "op": "jump",
            "target": "bb1"
          }
        ],
        "edge_bb5_bb9": [
          {
            "bits": 1,
            "dst": "v3__lane_0_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "byte_lane_store_defined_2"
            }
          },
          {
            "bits": 1,
            "dst": "v3__lane_1_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "v3__lane_1_defined"
            }
          },
          {
            "op": "jump",
            "target": "bb9"
          }
        ],
        "edge_bb6_bb9": [
          {
            "bits": 1,
            "dst": "v3__lane_0_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "v3__lane_0_defined"
            }
          },
          {
            "bits": 1,
            "dst": "v3__lane_1_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "byte_lane_store_defined_4"
            }
          },
          {
            "op": "jump",
            "target": "bb9"
          }
        ],
        "edge_bb7_bb9": [
          {
            "bits": 1,
            "dst": "v3__lane_0_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "byte_lane_store_defined_6"
            }
          },
          {
            "bits": 1,
            "dst": "v3__lane_1_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "v3__lane_1_defined"
            }
          },
          {
            "op": "jump",
            "target": "bb9"
          }
        ],
        "edge_bb8_bb9": [
          {
            "bits": 1,
            "dst": "v3__lane_0_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "v3__lane_0_defined"
            }
          },
          {
            "bits": 1,
            "dst": "v3__lane_1_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "v3__lane_1_defined"
            }
          },
          {
            "op": "jump",
            "target": "bb9"
          }
        ],
        "edge_bb9_bb1": [
          {
            "bits": 8,
            "dst": "phi_in_36",
            "op": "unary",
            "operator": "identity",
            "value": {
              "bits": 8,
              "const": 1
            }
          },
          {
            "bits": 8,
            "dst": "v2",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "phi_in_36"
            }
          },
          {
            "bits": 1,
            "dst": "v3__lane_0_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "v3__lane_0_defined"
            }
          },
          {
            "bits": 1,
            "dst": "v3__lane_1_defined",
            "op": "unary",
            "operator": "identity",
            "value": {
              "var": "v3__lane_1_defined"
            }
          },
          {
            "op": "jump",
            "target": "bb1"
          }
        ]
      },
      "entry": "bb0",
      "param_bits": [],
      "params": [],
      "recursive_conditional_cyclic_byte_lane_memory_definedness_phis": [
        {
          "block": "bb1",
          "bytes": 2,
          "defined": "v3__cyclic_byte_defined",
          "incoming": [
            {
              "block": "edge_bb9_bb1",
              "lanes": [
                {
                  "lane": 0,
                  "source": "carry"
                },
                {
                  "lane": 1,
                  "source": "carry"
                }
              ]
            },
            {
              "block": "edge_bb0_bb1",
              "lanes": [
                {
                  "lane": 0,
                  "source": "store",
                  "store": "byte_lane_store_0",
                  "store_byte": 0,
                  "store_bytes": 2
                },
                {
                  "lane": 1,
                  "source": "store",
                  "store": "byte_lane_store_0",
                  "store_byte": 1,
                  "store_bytes": 2
                }
              ]
            }
          ],
          "lane_defined": [
            "v3__lane_0_defined",
            "v3__lane_1_defined"
          ],
          "load": "v3",
          "recursive_transfers": [
            {
              "branches": [
                {
                  "block": "bb2",
                  "false": "bb3",
                  "true": "bb5"
                },
                {
                  "block": "bb3",
                  "false": "bb4",
                  "true": "bb6"
                },
                {
                  "block": "bb4",
                  "false": "bb8",
                  "true": "bb7"
                }
              ],
              "depth": 3,
              "join": "bb9",
              "leaves": [
                {
                  "block": "bb5",
                  "edge": "edge_bb5_bb9",
                  "lanes": [
                    {
                      "defined": "byte_lane_store_defined_2",
                      "lane": 0,
                      "source": "store",
                      "store": "byte_lane_store_1",
                      "store_byte": 0,
                      "store_bytes": 1
                    },
                    {
                      "lane": 1,
                      "source": "carry"
                    }
                  ],
                  "successor": "bb5"
                },
                {
                  "block": "bb6",
                  "edge": "edge_bb6_bb9",
                  "lanes": [
                    {
                      "lane": 0,
                      "source": "carry"
                    },
                    {
                      "defined": "byte_lane_store_defined_4",
                      "lane": 1,
                      "source": "store",
                      "store": "byte_lane_store_3",
                      "store_byte": 0,
                      "store_bytes": 1
                    }
                  ],
                  "successor": "bb6"
                },
                {
                  "block": "bb7",
                  "edge": "edge_bb7_bb9",
                  "lanes": [
                    {
                      "defined": "byte_lane_store_defined_6",
                      "lane": 0,
                      "source": "store",
                      "store": "byte_lane_store_5",
                      "store_byte": 0,
                      "store_bytes": 1
                    },
                    {
                      "lane": 1,
                      "source": "carry"
                    }
                  ],
                  "successor": "bb7"
                },
                {
                  "block": "bb8",
                  "edge": "edge_bb8_bb9",
                  "lanes": [
                    {
                      "lane": 0,
                      "source": "carry"
                    },
                    {
                      "lane": 1,
                      "source": "carry"
                    }
                  ],
                  "successor": "bb8"
                }
              ],
              "root": "bb2"
            }
          ],
          "writer_graph": true
        }
      ],
      "return_bits": 8
    }
  },
  "input_size": 3,
  "lowering": {
    "capabilities": [
      "integer-ssa",
      "scalar-mem2reg",
      "phi-edge-copies",
      "switch-chain",
      "direct-internal-calls",
      "bounded-bitvectors",
      "static-global-memory",
      "constant-gep",
      "multi-byte-memory",
      "stable-nondeterministic-freeze",
      "bounded-deferred-poison-freeze",
      "bounded-transitive-deferred-poison",
      "bounded-memory-deferred-poison",
      "canonical-address-memory-deferred-poison",
      "bounded-cross-block-memory-deferred-poison",
      "bounded-branch-memory-deferred-poison",
      "bounded-recursive-cyclic-byte-lane-writer-graph",
      "bounded-recursive-conditional-cyclic-byte-lane-memory-definedness-phi"
    ],
    "entry": "freeze_memory_recursive_conditional_cyclic_byte_lane_carry",
    "input_abi": "integer-arguments-little-endian",
    "llvm_version": "17.0.6",
    "schema": "symcc-llvm-continuation-lowering-v1",
    "source_module": "/home/ubuntu/code/symcc/test/live_continuation_lowering.ll",
    "status": "lowered"
  },
  "memory_hex": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "memory_objects": [
    {
      "address": 64,
      "kind": "static",
      "name": "poison_memory_array",
      "read_only": false,
      "size": 4
    }
  ],
  "memory_size": 68,
  "schema": "symcc-live-program-v1"
}
